Table of Contents

Interface IYubiKeyCommand<TResponse>

Namespace
Yubico.YubiKey
Assembly
Yubico.YubiKey.dll

An interface for representing a command that can be run on a YubiKey.

public interface IYubiKeyCommand<out TResponse> where TResponse : IYubiKeyResponse

Type Parameters

TResponse

The concrete type of the response to this command.

Remarks

Classes that implement this interface represent a low level command that can be Sent to the YubiKey.

An implementation of this interface can be thought of as a factory class for creating the necessary CommandApdu to send to the YubiKey (but does not actually send it itself). In addition, the implementation serves as a factory for creating the necessary IYubiKeyResponse based on the ResponseApdu.

Derived classes should expose strongly typed properties and methods to take in the parameters and data that the YubiKey command requires.

Properties

Application

Gets the YubiKeyApplication (e.g. PIV, OATH, etc.) to which this command applies.

YubiKeyApplication Application { get; }

Property Value

YubiKeyApplication

YubiKeyApplication.Otp, YubiKeyApplication.Piv, etc.

Methods

CreateCommandApdu()

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

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.

TResponse CreateResponseForApdu(ResponseApdu responseApdu)

Parameters

responseApdu ResponseApdu

The ResponseApdu returned by the YubiKey.

Returns

TResponse

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