ALG_ID

This data type specifies algorithm identifiers. Most of the functions in the CryptoAPI pass parameters of this data type that are defined in the Wincrypt.h header file as follows.

typedef unsigned int ALG_ID;

Remarks

Authors of custom cryptographic service providers (CSPs) can define algorithm identifiers. The ALG_ID data type used by custom CSPs for the key specs AT_KEYEXCHANGE and AT_SIGNATURE are provider dependent. The following table shows the algorithm identifiers that are currently defined.

Constant Description
CALG_AGREEDKEY_ANY Temporary algorithm identifier for handles of Diffie-Hellman–agreed keys.
CALG_CYLINK_MEK* An algorithm to create a 40-bit DES key that has parity bits and zeroed key bits to make its key length 64 bits.
CALG_DES DES encryption algorithm.
CALG_DESX DES encryption algorithm.
CALG_3DES Triple DES encryption algorithm.
CALG_3DES_112 Two-key triple DES with effective key length equal to 112 bits.
CALG_DH_EPHEM Diffie-Hellman ephemeral key exchange algorithm.
CALG_DH_SF Diffie-Hellman store and forward key exchange algorithm.
CALG_DSS_SIGN DSA public-key signature algorithm.
CALG_HMAC* HMAC keyed hash algorithm.
CALG_KEA_KEYX KEA key exchange algorithm (FORTEZZA).
CALG_MAC* MAC keyed hash algorithm.
CALG_MD2* MD2 hashing algorithm.
CALG_MD4 MD4 hashing algorithm.
CALG_MD5* MD5 Hashing algorithm.
CALG_RC2* RC2 block encryption algorithm.
CALG_RC4* RC4 stream encryption algorithm.
CALG_RC5 RC5 block encryption algorithm.
CALG_RSA_KEYX* RSA public-key key exchange algorithm.
CALG_RSA_SIGN* RSA public-key signature algorithm.
CALG_SEAL SEAL encryption algorithm.
CALG_SHA* SHA hashing algorithm.
CALG_SHA1* Same as CALG_SHA.
CALG_SKIPJACK Skipjack block encryption algorithm (FORTEZZA).
CALG_SSL3_SHAMD5 SSL3 client authentication.
CALG_TEK TEK (FORTEZZA).
CALG_SSL3_SHAMD5 Used by the schannel.dll operations system. This ALG_ID should not be used by applications.
CALG_SSL3_MASTER Used by the schannel.dll operations system. This ALG_ID should not be used by applications.
CALG_SCHANNEL_MASTER_HASH Used by the schannel.dll operations system. This ALG_ID should not be used by applications.
CALG_SCHANNEL_MAC_KEY Used by the schannel.dll operations system. This ALG_ID should not be used by applications.
CALG_SCHANNEL_ENC_KEY Used by the schannel.dll operations system. This ALG_ID should not be used by applications.
CALG_PCT1_MASTER Used by the schannel.dll operations system. This ALG_ID should not be used by applications.
CALG_SSL2_MASTER Used by the schannel.dll operations system. This ALG_ID should not be used by applications.
CALG_TLS1_MASTER Used by the schannel.dll operations system. This ALG_ID should not be used by applications.
CALG_TLS1PRF Used by the schannel.dll operations system. This ALG_ID should not be used by applications.

* Algorithms supported by the Microsoft Base Cryptographic Provider.

For the Microsoft Base Cryptographic Provider and the Microsoft Enhanced Cryptographic Provider, the following ALG_IDs are used for the key specs AT_KEYEXCHANGE and AT_SIGNATURE:

  • CALG_RSA_KEYX for AT_KEYEXCHANGE
  • CALG_RSA_SIGN for AT_SIGNATURE

For the Microsoft DSS Cryptographic Provider and the Diffie-Hellman Provider, the following ALG_IDs are used for the key specs AT_KEYEXCHANGE and AT_SIGNATURE:

  • CALG_DH_SF for AT_KEYEXCHANGE
  • CALG_DSS_SIGN for AT_SIGNATURE

Requirements

OS Versions: Windows CE 3.0 and later.
Header: Wincrypt.h.

See Also

CryptFindOIDInfo | CRYPT_ALGORITHM_IDENTIFIER

 Last updated on Thursday, April 08, 2004

© 1992-2003 Microsoft Corporation. All rights reserved.