Class ResetRetryResponse
The response to resetting the PIN, using the PUK (PIN Unblocking Key).
public sealed class ResetRetryResponse : PivResponse, IYubiKeyResponseWithData<int?>, IYubiKeyResponse
- Inheritance
-
objectResetRetryResponse
- Implements
-
IYubiKeyResponseWithData<int?>
- Inherited Members
Remarks
This is the partner Response class to ResetRetryCommand.
To determine the result of the command, first look at the
Status. If Status
is not one of
the following values then an error has occurred and GetData()
will throw an exception.
Status | Description |
---|---|
Success | The PIN was successfully reset. GetData returns
null . |
AuthenticationRequired | The PUK did not verify. GetData returns the number of retries remaining. If the number of retries is 0, the PUK is blocked. |
Example:
using System.Security.Cryptography;
/* This example assumes the application has a method to collect a
* PIN/PUK.
*/
byte[] puk;
byte[] newPin;
IYubiKeyConnection connection = key.Connect(YubiKeyApplication.Piv);
puk = CollectPuk();
newPin = CollectNewPin();
var resetRetryCommand = new ResetRetryCommand(puk, newPin);
ResetRetryResponse resetRetryResponse = connection.SendCommand(resetRetryCommand);
if (resetRetryResponse.Status != ResponseStatus.Success)
{
if (resetRetryResponse.Status == ResponseStatus.AuthenticationRequired)
{
int retryCount = resetRetryResponse.GetData();
/* report the retry count */
}
else
{
// Handle error
}
}
CryptographicOperations.ZeroMemory(puk);
CryptographicOperations.ZeroMemory(newPin);
Constructors
ResetRetryResponse(ResponseApdu)
Constructs a ResetRetryResponse based on a ResponseApdu received from the YubiKey.
public ResetRetryResponse(ResponseApdu responseApdu)
Parameters
responseApdu
ResponseApduThe object containing the response APDU
returned by the YubiKey.
Properties
StatusCodeMap
Retrieves the details describing the processing state.
protected override YubiKeyResponse.ResponseStatusPair StatusCodeMap { get; }
Property Value
- YubiKeyResponse.ResponseStatusPair
The ResponseStatus and a descriptive message, as a YubiKeyResponse.ResponseStatusPair.
Remarks
Implementers of subtypes can override this member to change or add mappings.
Methods
GetData()
Gets the number of PUK retries remaining, if applicable.
public int? GetData()
Returns
- int?
null
if the PIN is reset, or the number of retries remaining if the PUK does not verify.
Remarks
First look at the
Status. If Status
is not one of
the following values then an error has occurred and GetData()
will throw an exception.
Status | Description |
---|---|
Success | The PIN was successfully reset. GetData returns
null . |
AuthenticationRequired | The PUK did not verify. GetData returns the number of retries remaining. If the number of retries is 0, the PUK is blocked. |
Exceptions
- InvalidOperationException
Thrown if Status is not Success or AuthenticationRequired.