# ALG_ID (Windows CE 5.0)

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

**OS Versions:** Windows CE 3.0 and later.

**Header:** Wincrypt.h.

#### See Also

Cryptography Reference | Cryptography Data Types | CryptFindOIDInfo | CRYPT_ALGORITHM_IDENTIFIER

Send Feedback on this topic to the authors