Table of Contents

Class ValidateCommand

Namespace
Yubico.YubiKey.Oath.Commands
Assembly
Yubico.YubiKey.dll

Validates authentication (mutually). The challenge for this comes from the SelectOathResponse. The response computed by performing the correct HMAC function of that challenge with the correct secret. A new challenge is then sent to the application along with the response. The application will then respond with a similar calculation that the host software can verify.

public class ValidateCommand : OathChallengeResponseBaseCommand, IYubiKeyCommand<ValidateResponse>
Inheritance
object
ValidateCommand
Implements
Inherited Members

Constructors

ValidateCommand(ReadOnlyMemory<byte>, OathApplicationData)

Constructs an instance of the ValidateCommand class.

public ValidateCommand(ReadOnlyMemory<byte> password, OathApplicationData oathData)

Parameters

password ReadOnlyMemory<byte>

The user-supplied password to validate.

oathData OathApplicationData

An implementation of OathApplicationData.

Properties

Application

Gets the YubiKeyApplication to which this command belongs.

public YubiKeyApplication Application { get; }

Property Value

YubiKeyApplication

YubiKeyApplication.Oath

CalculatedResponse

Gets and privately sets.

public ReadOnlyMemory<byte> CalculatedResponse { get; }

Property Value

ReadOnlyMemory<byte>

The response that is calculated with a new generated challenge.

Methods

CreateCommandApdu()

Creates a well-formed CommandApdu to send to the YubiKey.

public CommandApdu CreateCommandApdu()

Returns

CommandApdu

A valid CommandApdu that is ready to be sent to the YubiKey, or passed along to additional encoders for further processing.

Remarks

This method will first perform validation on all of the parameters and data provided to it. The CommandAPDU it creates should contain all of the data payload for the command, even if it exceeds 65,535 bytes as specified by the ISO 7816-4 specification. The APDU will be properly chained by the device connection prior to being sent to the YubiKey, and the responses will collapsed into a single result.

CreateResponseForApdu(ResponseApdu)

Creates the corresponding IYubiKeyResponse implementation for the current command.

public ValidateResponse CreateResponseForApdu(ResponseApdu responseApdu)

Parameters

responseApdu ResponseApdu

The ResponseApdu returned by the YubiKey.

Returns

ValidateResponse

The implementation of IYubiKeyResponse that parses and presents ths response APDU.