Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
The following identifiers are used to identify standard encryption algorithms in various CNG functions and structures, such as the CRYPT_INTERFACE_REG structure. Third party providers may have additional algorithms that they support.
Constant/value | Description |
---|---|
BCRYPT_3DES_ALGORITHM L"3DES" |
The triple data encryption standard symmetric encryption algorithm. Standard: SP800-67, SP800-38A |
BCRYPT_3DES_112_ALGORITHM L"3DES_112" |
The 112-bit triple data encryption standard symmetric encryption algorithm. Standard: SP800-67, SP800-38A |
BCRYPT_AES_ALGORITHM L"AES" |
The advanced encryption standard (AES) symmetric encryption algorithm. Standard: FIPS 197 |
BCRYPT_AES_CMAC_ALGORITHM L"AES-CMAC" |
The advanced encryption standard (AES) cipher based message authentication code (CMAC) symmetric encryption algorithm. Standard: SP 800-38B Windows 8: Support for this algorithm begins. |
BCRYPT_AES_GMAC_ALGORITHM L"AES-GMAC" |
The advanced encryption standard (AES) Galois message authentication code (GMAC) symmetric encryption algorithm. Standard: SP800-38D Windows Vista: This algorithm is supported beginning with Windows Vista with SP1. |
BCRYPT_CAPI_KDF_ALGORITHM L"CAPI_KDF" |
Crypto API (CAPI) key derivation function algorithm. Used by the BCryptKeyDerivation and NCryptKeyDerivation functions. |
BCRYPT_CHACHA20_POLY1305_ALGORITHM L"CHACHA20_POLY1305" |
The ChaCha20-Poly1305 AEAD algorithm. Standard: RFC 8439 Windows 10: Support for this algorithm begins. |
BCRYPT_CSHAKE128_ALGORITHM L"CSHAKE128" |
The SHA3 derived customizable XOF with 128-bit strength. Standard: SP800-185. Windows 11, version 24H2: Support for this algorithm begins. |
BCRYPT_CSHAKE256_ALGORITHM L"CSHAKE256" |
The SHA3 derived customizable XOF with 256-bit strength. Standard: SP800-185. Windows 11, version 24H2: Support for this algorithm begins. |
BCRYPT_DES_ALGORITHM L"DES" |
The data encryption standard symmetric encryption algorithm. Standard: FIPS 46-3, FIPS 81 |
BCRYPT_DESX_ALGORITHM L"DESX" |
The extended data encryption standard symmetric encryption algorithm. Standard: None |
BCRYPT_DH_ALGORITHM L"DH" |
The Diffie-Hellman key exchange algorithm. Standard: PKCS #3 |
BCRYPT_DSA_ALGORITHM L"DSA" |
The digital signature algorithm. Standard: FIPS 186-2 Windows 8: Beginning with Windows 8, this algorithm supports FIPS 186-3. Keys less than or equal to 1024 bits adhere to FIPS 186-2 and keys greater than 1024 to FIPS 186-3. |
BCRYPT_ECDH_ALGORITHM L"ECDH" |
Generic prime elliptic curve Diffie-Hellman key exchange algorithm (see the Remarks section for more information). Standard: SP800-56A. |
BCRYPT_ECDSA_ALGORITHM L"ECDSA" |
Generic prime elliptic curve digital signature algorithm (see the Remarks section for more information). Standard: ANSI X9.62. |
BCRYPT_ECDH_P256_ALGORITHM L"ECDH_P256" |
The 256-bit prime elliptic curve Diffie-Hellman key exchange algorithm. Standard: SP800-56A |
BCRYPT_ECDH_P384_ALGORITHM L"ECDH_P384" |
The 384-bit prime elliptic curve Diffie-Hellman key exchange algorithm. Standard: SP800-56A |
BCRYPT_ECDH_P521_ALGORITHM L"ECDH_P521" |
The 521-bit prime elliptic curve Diffie-Hellman key exchange algorithm. Standard: SP800-56A |
BCRYPT_ECDSA_P256_ALGORITHM L"ECDSA_P256" |
The 256-bit prime elliptic curve digital signature algorithm (FIPS 186-2). Standard: FIPS 186-2, X9.62 |
BCRYPT_ECDSA_P384_ALGORITHM L"ECDSA_P384" |
The 384-bit prime elliptic curve digital signature algorithm (FIPS 186-2). Standard: FIPS 186-2, X9.62 |
BCRYPT_ECDSA_P521_ALGORITHM L"ECDSA_P521" |
The 521-bit prime elliptic curve digital signature algorithm (FIPS 186-2). Standard: FIPS 186-2, X9.62 |
BCRYPT_HKDF_ALGORITHM L"HKDF" |
The HMAC-based Extract-and-Expand key derivation function. Standard: RFC 5869 Windows 10: Support for this algorithm begins. |
BCRYPT_KMAC128_ALGORITHM L"KMAC128" |
The SHA3 derived Keccak message authentication code (KMAC) built on CSHAKE128. Standard: SP800-185. Windows 11, version 24H2: Support for this algorithm begins. |
BCRYPT_KMAC256_ALGORITHM L"KMAC256" |
The SHA3 derived Keccak message authentication code (KMAC) built on CSHAKE256. Standard: SP800-185. Windows 11, version 24H2: Support for this algorithm begins. |
BCRYPT_LMS_ALGORITHM L"LMS" |
The Leighton-Micali Hash-Based Signature algorithm. Standard: RFC 8554. Note: This identifier is part of a prerelease product which may be substantially modified before it's commercially released. Microsoft makes no warranties, express or implied, with respect to the information provided here. The identifier is available in pre-release versions of the Windows Insider Preview. |
BCRYPT_MD2_ALGORITHM L"MD2" |
The MD2 hash algorithm. Standard: RFC 1319 |
BCRYPT_MD4_ALGORITHM L"MD4" |
The MD4 hash algorithm. Standard: RFC 1320 |
BCRYPT_MD5_ALGORITHM L"MD5" |
The MD5 hash algorithm. Standard: RFC 1321 |
BCRYPT_MLDSA_ALGORITHM L"ML-DSA" |
The Module-Lattice-Based Digital Signature Algorithm (ML-DSA). Standard: FIPS 204. Note: This identifier is part of a prerelease product which may be substantially modified before it's commercially released. Microsoft makes no warranties, express or implied, with respect to the information provided here. The identifier is available in pre-release versions of the Windows Insider Preview. |
BCRYPT_MLKEM_ALGORITHM L"ML-KEM" |
The Module-Lattice-Based Key Encapsulation Mechanism (ML-KEM) algorithm. Standard: FIPS 203. Note: This identifier is part of a prerelease product which may be substantially modified before it's commercially released. Microsoft makes no warranties, express or implied, with respect to the information provided here. The identifier is available in pre-release versions of the Windows Insider Preview. |
BCRYPT_RC2_ALGORITHM L"RC2" |
The RC2 symmetric encryption algorithm. Standard: RFC 2268 |
BCRYPT_RC4_ALGORITHM L"RC4" |
The RC4 symmetric encryption algorithm. Standard: Various |
BCRYPT_RNG_ALGORITHM L"RNG" |
The random-number generator algorithm. Standard: FIPS 186-2, FIPS 140-2, NIST SP 800-90 Note: Beginning with Windows Vista with SP1 and Windows Server 2008, the random number generator is based on the AES counter mode specified in the NIST SP 800-90 standard. Windows Vista: The random number generator is based on the hash-based random number generator specified in the FIPS 186-2 standard. Windows 8: Beginning with Windows 8, the RNG algorithm supports FIPS 186-3. Keys less than or equal to 1024 bits adhere to FIPS 186-2 and keys greater than 1024 to FIPS 186-3. |
BCRYPT_RNG_DUAL_EC_ALGORITHM L"DUALECRNG" |
The dual elliptic curve random-number generator algorithm. Standard: SP800-90. Windows 8: Beginning with Windows 8, the EC RNG algorithm supports FIPS 186-3. Keys less than or equal to 1024 bits adhere to FIPS 186-2 and keys greater than 1024 to FIPS 186-3. Windows 10: Beginning with Windows 10, the dual elliptic curve random number generator algorithm has been removed. Existing uses of this algorithm will continue to work; however, the random number generator is based on the AES counter mode specified in the NIST SP 800-90 standard. New code should use BCRYPT_RNG_ALGORITHM, and it is recommended that existing code be changed to use BCRYPT_RNG_ALGORITHM. |
BCRYPT_RNG_FIPS186_DSA_ALGORITHM L"FIPS186DSARNG" |
The random-number generator algorithm suitable for DSA (Digital Signature Algorithm). Standard: FIPS 186-2. Windows 8: Support for FIPS 186-3 begins. |
BCRYPT_RSA_ALGORITHM L"RSA" |
The RSA public key algorithm. Standard: PKCS #1 v1.5 and v2.0. |
BCRYPT_RSA_SIGN_ALGORITHM L"RSA_SIGN" |
The RSA signature algorithm. This algorithm is not currently supported. You can use the BCRYPT_RSA_ALGORITHM algorithm to perform RSA signing operations. Standard: PKCS #1 v1.5 and v2.0. |
BCRYPT_SHA1_ALGORITHM L"SHA1" |
The 160-bit secure hash algorithm. Standard: FIPS 180-2, FIPS 198. |
BCRYPT_SHA256_ALGORITHM L"SHA256" |
The 256-bit secure hash algorithm. Standard: FIPS 180-2, FIPS 198. |
BCRYPT_SHA384_ALGORITHM L"SHA384" |
The 384-bit secure hash algorithm. Standard: FIPS 180-2, FIPS 198. |
BCRYPT_SHA512_ALGORITHM L"SHA512" |
The 512-bit secure hash algorithm. Standard: FIPS 180-2, FIPS 198. |
BCRYPT_SHA3_256_ALGORITHM L"SHA3_256" |
The SHA3 256-bit secure hash algorithm. Standard: FIPS 202. Windows 11, version 24H2: Support for this algorithm begins. |
BCRYPT_SHA3_384_ALGORITHM L"SHA3_384" |
The SHA3 384-bit secure hash algorithm. Standard: FIPS 202. Windows 11, version 24H2: Support for this algorithm begins. |
BCRYPT_SHA3_512_ALGORITHM L"SHA3_512" |
The SHA3 512-bit secure hash algorithm. Standard: FIPS 202. Windows 11, version 24H2: Support for this algorithm begins. |
BCRYPT_SHAKE128_ALGORITHM L"SHAKE128" |
The SHA3 XOF with 128-bit strength. Standard: FIPS 202. Note: This identifier is part of a prerelease product which may be substantially modified before it's commercially released. Microsoft makes no warranties, express or implied, with respect to the information provided here. The identifier is available in pre-release versions of the Windows Insider Preview. |
BCRYPT_SHAKE256_ALGORITHM L"SHAKE256" |
The SHA3 XOF with 256-bit strength. Standard: FIPS 202. Note: This identifier is part of a prerelease product which may be substantially modified before it's commercially released. Microsoft makes no warranties, express or implied, with respect to the information provided here. The identifier is available in pre-release versions of the Windows Insider Preview. |
BCRYPT_SLHDSA_ALGORITHM L"SLH-DSA" |
The Stateless Hash-based digital signature algorithm (SLH-DSA). Standard: FIPS 205. Note: This identifier is part of a prerelease product which may be substantially modified before it's commercially released. Microsoft makes no warranties, express or implied, with respect to the information provided here. The identifier is available in pre-release versions of the Windows Insider Preview. |
BCRYPT_SP800108_CTR_HMAC_ALGORITHM L"SP800_108_CTR_HMAC" |
Counter mode, hash-based message authentication code (HMAC) key derivation function algorithm. Used by the BCryptKeyDerivation and NCryptKeyDerivation functions. |
BCRYPT_SP80056A_CONCAT_ALGORITHM L"SP800_56A_CONCAT" |
SP800-56A key derivation function algorithm. Used by the BCryptKeyDerivation and NCryptKeyDerivation functions. |
BCRYPT_PBKDF2_ALGORITHM L"PBKDF2" |
Password-based key derivation function 2 (PBKDF2) algorithm. Used by the BCryptKeyDerivation and NCryptKeyDerivation functions. |
BCRYPT_XMSS_ALGORITHM L"XMSS" |
The eXtended Merkle Signature Scheme (XMSS) stateful hash-based signature algorithm. XMSS Standard: RFC 8391. Note: This identifier is part of a prerelease product which may be substantially modified before it's commercially released. Microsoft makes no warranties, express or implied, with respect to the information provided here. The identifier is available in pre-release versions of the Windows Insider Preview. |
BCRYPT_XTS_AES_ALGORITHM L"XTS-AES" |
The advanced encryption standard (AES) symmetric encryption algorithm in XTS mode. Standard: SP-800-38E, IEEE Std 1619-2007. Windows 10: Support for this algorithm begins. |
To use BCRYPT_ECDSA_ALGORITHM or BCRYPT_ECDH_ALGORITHM, call BCryptOpenAlgorithmProvider with either BCRYPT_ECDSA_ALGORITHM or BCRYPT_ECDH_ALGORITHM as the pszAlgId. Then use BCryptSetProperty to set the BCRYPT_ECC_CURVE_NAME property to a named algorithm listed in CNG Named Curves.
To provide user-defined elliptic curve parameters directly, use BCryptSetProperty to set the BCRYPT_ECC_PARAMETERS property. Download the Windows 10 Cryptographic Provider Developer Kit (CPDK) for more information.
Requirement | Value |
---|---|
Minimum supported client |
Windows Vista [desktop apps only] |
Minimum supported server |
Windows Server 2008 [desktop apps only] |
Header |
|