Class ChallengeResponseCommand
Issues a challenge to the YubiKey. The slot must be configured in challenge-response mode for this command's response to be valid.
public class ChallengeResponseCommand : IYubiKeyCommand<ChallengeResponseResponse>
- Inheritance
-
objectChallengeResponseCommand
- Implements
Constructors
ChallengeResponseCommand(Slot, ChallengeResponseAlgorithm, ReadOnlyMemory<byte>)
Constructs a new instance of the ChallengeResponseCommand class with the challenge and slot information supplied.
public ChallengeResponseCommand(Slot slot, ChallengeResponseAlgorithm algorithm, ReadOnlyMemory<byte> challenge)
Parameters
slot
SlotThe OTP slot to issue the challenge.
algorithm
ChallengeResponseAlgorithmThe algorithm the YubiKey should use when generating the response.
challenge
ReadOnlyMemory<byte>The challenge to send to the YubiKey. For the YubicoOtp algorithm, the challenge must be exactly 6 bytes. If the algorithm is HmacSha1, the challenge must be 64 bytes, or 0-63 bytes if the HmacLessThan64Bytes is set on this slot's configuration.
Properties
Algorithm
The algorithm the YubiKey should use when generating the response.
public ChallengeResponseAlgorithm Algorithm { get; }
Property Value
Application
Gets the YubiKeyApplication (e.g. PIV, OATH, etc.) to which this command applies.
public YubiKeyApplication Application { get; }
Property Value
- YubiKeyApplication
YubiKeyApplication.Otp, YubiKeyApplication.Piv, etc.
OtpSlot
The OTP slot to issue the challenge.
public Slot OtpSlot { get; }
Property Value
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 ChallengeResponseResponse CreateResponseForApdu(ResponseApdu responseApdu)
Parameters
responseApdu
ResponseApduThe ResponseApdu returned by the YubiKey.
Returns
- ChallengeResponseResponse
The implementation of IYubiKeyResponse that parses and presents ths response APDU.