# ALG_ID

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

#### Reference

Cryptography Reference

Cryptography Data Types

CryptFindOIDInfo

CRYPT_ALGORITHM_IDENTIFIER