CARD_SIGNING_INFO Structure

The CARD_SIGNING_INFO structure specifies data to be signed by the CardSignData function.

Syntax

typedef struct _CARD_SIGNING_INFO {
  DWORD  dwVersion;
  BYTE   bContainerIndex;
  DWORD  dwKeySpec;
  DWORD  dwSigningFlags;
  ALG_ID aiHashAlg;
  PBYTE  pbData;
  DWORD  cbData;
  PBYTE  pbSignedData;
  DWORD  cbSignedData;
  LPVOID pPaddingInfo;
  DWORD  dwPaddingType;
} CARD_SIGNING_INFO, *PCARD_SIGNING_INFO;

Members

  • dwVersion
    The version number of the structure. You must set this member to 1.

  • bContainerIndex
    The key container index number. The container holds the keys used to sign the data.

  • dwKeySpec
    The purpose of the keys in the key container. This member can be one of the following values.

    Value Meaning
    AT_KEYEXCHANGE 1

    The keys in the container are used to encrypt and decrypt session keys.

    AT_SIGNATURE 2

    The keys in the container are used to create and verify digital signatures.

  • dwSigningFlags
    Specifies certain behavior of this structure. The following flags are defined.

    Value Meaning
    CARD_BUFFER_SIZE_ONLY 0x20000000

    The card module returns only the size of the signed data in the cbSignedData member, and is not required to return the signed data in the pbSignedData member.

    CARD_PADDING_INFO_PRESENT 0x400000000x40000000

    The pPaddingInfo member points to a structure specified by the dwPaddingType member. Otherwise, the pPaddingInfo member is ignored.

  • aiHashAlg
    A value of the ALG_ID enumeration that specifies the algorithm used to sign the data.

  • pbData
    A pointer to an array that contains the data to be signed.

  • cbData
    The size, in bytes, of the pbData array.

  • pbSignedData
    A pointer to an array that, on output, contains the signed data.

  • cbSignedData
    The size, in bytes, of the pbSignedData buffer.

  • pPaddingInfo
    A pointer to a structure that specifies padding scheme options. The value of the dwPaddingType member determines which padding structure is used.

    **Windows Server 2003, Windows 2000 Server with SP4 and later, Windows XP, and Windows 2000 Professional with SP4 and later:  **This member is not supported.

  • dwPaddingType
    The type of padding structure that the pPaddingInfo member points to. The following values are defined.

    **Windows Server 2003, Windows 2000 Server with SP4 and later, Windows XP, and Windows 2000 Professional with SP4 and later:  **This member is not supported.

    Value Meaning
    CARD_PADDING_NONE 10x1

    No card padding structure is used.

    CARD_PADDING_PKCS1 20x2

    The pPaddingInfo member points to a BCRYPT_PKCS1_PADDING_INFO structure. PKCS1 version 1.5 padding is used, and the OID of the hash algorithm is embedded in the signature.

    CARD_PADDING_PSS 40x4

    The pPaddingInfo member points to a BCRYPT_PSS_PADDING_INFO structure. PKCS1 version 2.0 PSS padding is used. This value is supported only by card modules called by the smart card key storage provider (KSP).

Requirements

Minimum supported client Windows XP, Windows 2000 Professional with SP4
Minimum supported server Windows Server 2003, Windows 2000 Server with SP4
Header Cardmod.h

See Also

Microsoft Base Smart Card Cryptographic Service Provider

CardSignData

Send comments about this topic to Microsoft

Build date: 3/5/2009