Important:
This is retired content. This content is outdated and is no longer being maintained. It is provided as a courtesy for individuals who are still using these technologies. This content may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist.
A version of this page is also available for
4/8/2010

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.

Syntax

typedef unsigned int ALG_ID;

Remarks

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

Constant Description

CALG_AES_128

128-bit AES block encryption algorithm.

CALG_AES_192

192-bit AES block encryption algorithm.

CALG_AES_256

256-bit AES block encryption algorithm.

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 encryption algorithm, 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, except that it generates a 160-bit message digest or hash.

CALG_SHA_256

Generates a 256-bit message digest or hash.

CALG_SHA_384

Generates a 384-bit message digest or hash.

CALG_SHA_512

Generates a 512-bit message digest or hash.

CALG_SKIPJACK

Skipjack block encryption algorithm (FORTEZZA).

CALG_SSL3_SHAMD5

SSL3 client authentication algorithm.

CALG_TEK

TEK algorithm (FORTEZZA).

CALG_SSL3_SHAMD5

Used by the schannel.dll operations system. This identifier should not be used by applications.

CALG_SSL3_MASTER

Used by the schannel.dll operations system. This identifier should not be used by applications.

CALG_SCHANNEL_MASTER_HASH

Used by the schannel.dll operations system. This identifier should not be used by applications.

CALG_SCHANNEL_MAC_KEY

Used by the schannel.dll operations system. This identifier should not be used by applications.

CALG_SCHANNEL_ENC_KEY

Used by the schannel.dll operations system. This identifier should not be used by applications.

CALG_PCT1_MASTER

Used by the schannel.dll operations system. This identifier should not be used by applications.

CALG_SSL2_MASTER

Used by the schannel.dll operations system. This identifier should not be used by applications.

CALG_TLS1_MASTER

Used by the schannel.dll operations system. This identifier should not be used by applications.

CALG_TLS1PRF

Used by the schannel.dll operations system. This identifier 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 identifiers are used for the key specifications 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 identifiers are used for the key specifications AT_KEYEXCHANGE and AT_SIGNATURE:

  • CALG_DH_SF for AT_KEYEXCHANGE

  • CALG_DSS_SIGN for AT_SIGNATURE

Requirements

Header wincrypt.h
Windows Embedded CE Windows CE 3.0 and later
Windows Mobile Windows Mobile Version 5.0 and later

See Also