# 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.