ALG_ID

The ALG_ID data type is used to specify algorithm identifiers. Parameters of this data type are passed to most of the functions in the CryptoAPI. This data type is defined in the Wincrypt.h header file as:

typedef unsigned int ALG_ID;
 

The following table lists the algorithm identifiers that are currently defined. Authors of custom CSPs can define new values. Also, the ALG_ID used by custom CSPs for the key specs AT_KEYEXCHANGE and AT_SIGNATURE are provider dependent. Current mappings follow the table.

Constant Description
CALG_DSS_SIGN The digital signature algorithm
CALG_HMAC† HMAC keyed hash algorithm
CALG_MD2† MD2 hashing algorithm
CALG_MD4 MD4 hashing algorithm
CALG_MD5† MD5 hashing algorithm
CALG_SHA† SHA hashing algorithm
CALG_SHA1† Same as CALG_SHA
CALG_MAC† MAC keyed hash algorithm
CALG_SSL3_SHAMD5 SSL3 client authentication
CALG_RSA_SIGN† RSA public-key signature algorithm
CALG_DSS_SIGN DSA public-key signature algorithm
CALG_RSA_KEYX† RSA public-key key exchange algorithm
CALG_DES DES encryption algorithm
CALG_RC2† RC2 block encryption algorithm
CALG_RC4† RC4 stream encryption algorithm
CALG_SEAL SEAL encryption algorithm
CALG_DH_SF Diffie-Hellman store and forward key exchange algorithm
CALG_DH_EPHEM Diffie-Hellman ephemeral key exchange algorithm
CALG_AGREEDKEY_ANY Temporary algorithm identifier for handles of Diffie-Hellman agreed keys
CALG_KEA_KEYX KEA key exchange algorithm (FORTEZZA)
CALG_SKIPJACK Skipjack block encryption algorithm (FORTEZZA)
CALG_TEK TEK (FORTEZZA)

† Algorithm supported by the Microsoft Base Cryptographic Provider.

For the Microsoft Base Cryptographic Provider and the Microsoft Enhanced Cryptographic Provider, the ALG_ID used for the key specs AT_KEYEXCHANGE and AT_SIGNATURE are as follows:

CALG_RSA_KEYX is used for AT_KEYEXCHANGE

CALG_RSA_SIGN is used for AT_SIGNATURE

For the Microsoft DSS Cryptographic Provider and the Diffie-Hellman Provider, the ALG_ID used for the key specs AT_KEYEXCHANGE and AT_SIGNATURE are as follows:

CALG_DH_SF is used for AT_KEYEXCHANGE

CALG_DSS_SIGN is used for AT_SIGNATURE

See Also

CRYPT_ALGORITHM_IDENTIFIER, CryptEncodeObject/CryptDecodeObject Functions,

CryptFindOIDInfo