CARD_AUTHENTICATE structure

This structure is used by the minidriver to allow for a remote secure key injection application to securely authenticate to the card that is connected to an un-trusted client.

Syntax

typedef struct _CARD_AUTHENTICATE {
  DWORD  dwVersion;
  DWORD  dwFlags;
  PIN_ID PinId;
  DWORD  cbPinData;
  BYTE   pbPinData[];
} CARD_AUTHENTICATE, *PCARD_AUTHENTICATE;

Members

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

  • dwFlags
    A set of flags that specify the meaning of the data within the structure.

  • PinId
    The PIN identifier to be authenticated.

  • cbPinData
    Byte count of the data in the pbPinData buffer.

  • pbPinData
    A zero-sized byte array that which points to the end of the structure. A byte array that contains PIN information should be attached at this address. cbPinData contains the length of this byte array.

Remarks

For the expected behavior and explanation of dwFlags, see CardAuthenticatePin.

The secure version of PIN authentication is not valid for the external PIN type, which are PINs that are stored on a device that is connected to the computer. If the function returns 0 (success), the user can perform any action that requires PinId to be authenticated. This state persists until one of the following occurs:

Note  This does not apply if CARD_AUTHENTICATE_GENERATE_SESSION_PIN is specified in dwFlags.

 

If this data structure is passed to any of the secure key injection functions as an 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 PIN data.

In addition, pbPinData should point to location of the PIN data within the input buffer. This data should immediately follow the CARD_AUTHENTICATE structure within the input buffer.

Requirements

Header

Cardmod.h (include Cardmod.h)

 

 

Send comments about this topic to Microsoft