Table of Contents

Class VerifyPinCommand

Namespace
Yubico.YubiKey.U2f.Commands
Assembly
Yubico.YubiKey.dll

Verifies a user-supplied PIN.

public sealed class VerifyPinCommand : IYubiKeyCommand<VerifyPinResponse>
Inheritance
object
VerifyPinCommand
Implements

Remarks

Some U2F documentation may describe this as "unlocking" the U2F application.

Constructors

VerifyPinCommand(ReadOnlyMemory<byte>)

Constructs an instance of the VerifyPinCommand class.

public VerifyPinCommand(ReadOnlyMemory<byte> pin)

Parameters

pin ReadOnlyMemory<byte>

The PIN to verify, represented as bytes.

Properties

Application

Gets the YubiKeyApplication to which this command belongs.

public YubiKeyApplication Application { get; }

Property Value

YubiKeyApplication

FidoU2f

Pin

The PIN needed to perform U2F operations on a FIPS YubiKey.

public ReadOnlyMemory<byte> Pin { get; set; }

Property Value

ReadOnlyMemory<byte>

Remarks

The PIN must be from 6 to 32 bytes long (inclusive). It is binary data. This command class will use whatever PIN you supply, so if it is an incorrect length, you will get the error when trying to execute tht command.

This class will copy a reference to the PIN provided. Do not overwrite the data until after the command has executed. After it has executed, overwrite the buffer for security reasons.

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 VerifyPinResponse CreateResponseForApdu(ResponseApdu responseApdu)

Parameters

responseApdu ResponseApdu

The ResponseApdu returned by the YubiKey.

Returns

VerifyPinResponse

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