Class ValidateCommand
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
-
objectValidateCommand
- 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
OathApplicationDataAn 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
ResponseApduThe ResponseApdu returned by the YubiKey.
Returns
- ValidateResponse
The implementation of IYubiKeyResponse that parses and presents ths response APDU.