Show / Hide Table of Contents

GetPinTokenCommand Constructor

GetPinTokenCommand(PinUvAuthProtocolBase, ReadOnlyMemory<byte>)

Constructs a new instance of GetPinTokenCommand.

C#
public GetPinTokenCommand(PinUvAuthProtocolBase pinProtocol, ReadOnlyMemory<byte> currentPin)

Parameters

Type Name Description
PinUvAuthProtocolBase pinProtocol

An object defining the PIN protocol the command will use. The Encapsulate(CoseKey) method must have been successfully executed before passing it to this constructor.

ReadOnlyMemory<byte> currentPin

The PIN. This is a byte array with the PIN provided as the UTF-8 encoding of Unicode characters in Normalization Form C.

Exceptions

Type Condition
ArgumentNullException

The pinProtocol arg is null.

ArgumentException

The PIN is an incorrect length.

InvalidOperationException

The pinProtocol is in a state indicating Encapsulate has not executed.

Remarks

The caller must specify which PIN protocol the command will use. This is done by passing in a subclass of PinUvAuthProtocolBase. This constructor requires the Encapsulate(CoseKey) method to have been called before passing it in. Note that the Encapsulate method requires the YubiKey's public key, which is obtained by executing the GetKeyAgreementCommand.

In order to get the PIN token, the caller must supply the new PIN at construction. In this class, the PIN is supplied as ReadOnlyMemory<byte>. It is possible to pass a byte[], because it will be automatically cast.

This class will encrypt the PIN and will not copy a reference. That means you can overwrite the PIN in your byte array after calling the constructor.

In this article
Back to top Generated by DocFX