CARD_AUTHENTICATE_RESPONSE structure

This structure is used by the minidriver to return status information to a secure key injection application that uses CARD_AUTHENTICATE to perform remote authentication to the card.

Syntax

typedef struct _CARD_AUTHENTICATE_RESPONSE {
  DWORD dwVersion;
  DWORD cbSessionPin;
  DWORD cAttemptsRemaining;
  BYTE  pbSessionPin[];
} CARD_AUTHENTICATE_RESPONSE, *PCARD_AUTHENTICATE_RESPONSE;

Members

  • dwVersion
    The version of the structure. Set to CARD_AUTHENTICATE_RESPONSE_CURRENT_VERSION.

  • cbSessionPin
    Byte count of the session PIN data. This member is set by the minidriver if a session PIN is returned.

  • cAttemptsRemaining
    A count of the times that an incorrect PIN was presented to the card. If this count becomes zero, the PIN is locked.

  • pbSessionPin
    A zero-sized byte array that points to the end of the structure. If the minidriver wants to return a session PIN, a buffer that contains a session PIN should be appended here. cbSessionPin contains the length of this byte array.

Remarks

This structure is used to transfer data back from a secure authentication operation. Currently, the card can pass back a session PIN in addition to the number of authentication attempts that remain in the card following a failed authentication operation.

If a session PIN is returned, it may be encrypted. The decryption of the encrypted session pin can be performed by calling CardProcessEncryptedData.

If this data structure is passed to any of the secure key injection functions as input buffer, the size of the buffer that is specified in the function call should include both the size of the structure and the length of the session PIN data.

In addition, if a session PIN is returned, pbPinData should point to location of the session PIN data within the input buffer. This data should immediately follow the CARD_AUTHENTICATE_RESPONSE structure within the input buffer. Also, cbSessionPin must be the nonzero value of the length of the PIN data.

Note  If a session key is not returned, the minidriver must set cbSessionPin to zero.

 

Requirements

Header

Cardmod.h (include Cardmod.h)

See also

CARD_AUTHENTICATE

 

 

Send comments about this topic to Microsoft