Share via


CardQueryKeySizes function

This function returns the public key sizes that are supported by the card in use.

Syntax

DWORD WINAPI CardQueryKeySizes(
  _In_    PCARD_DATA      pCardData,
  _In_    DWORD           dwKeySpec,
  _In_    DWORD           dwFlags,
  _Inout_ PCARD_KEY_SIZES pKeySizes
);

Parameters

  • pCardData [in]
    Context information for the call. For more information, see CardAcquireContext.

  • dwKeySpec [in]
    The type of key to query. For allowed values see CardCreateContainer.

  • dwFlags [in]
    Reserved. Set to 0.

  • pKeySizes [in, out]
    Pointer to a CARD_KEY_SIZES structure. The supported key sizes for the specified algorithm type are returned.

Return value

Zero on success; otherwise, nonzero.

Remarks

Key size information is returned in the following structure. For ECC, minimum, default, and maximum are a specific value. Increment is 1.

typedef struct _CARD_KEY_SIZES
{
    DWORD  dwVersion;         // version should be set by the caller

    DWORD  dwMinimumBitlen;
    DWORD  dwDefaultBitlen;
    DWORD  dwMaximumBitlen;
    DWORD  dwIncrementalBitlen;
} CARD_KEY_SIZES, *PCARD_KEY_SIZES;

If dwKeySpec is undefined, the function should return SCARD_E_INVALID_PARAMETER.

If dwKeySpec is defined but not supported by the card, the function should return SCARD_E_UNSUPPORTED_FEATURE.

A card minidriver that supports read-only cards may support more key types than what the specific read only card has been provisioned with. In this case CardQueryKeySizes should succeed and return a corresponding CARD_KEY_SIZES structure for the supported key spec.

Requirements

Target platform

Desktop

Header

Cardmod.h (include Cardmod.h)

See also

CardCreateContainer

 

 

Send comments about this topic to Microsoft