Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
A partir do Windows 10, o CNG (Cryptography API: Next Generation) fornece identificadores de algoritmo predefinidos para operações criptográficas. Esses manipuladores de algoritmo simplificam o desenvolvimento, eliminando a necessidade de criar manualmente identificadores para algoritmos criptográficos comuns, incluindo funções de hash, algoritmos de criptografia, assinaturas digitais e funções de derivação de chave.
Algoritmos MAC (Hash and Message Authentication Code)
| Constante | Descrição | Standards |
|---|---|---|
|
BCRYPT_MD2_ALG_HANDLE 0x00000001 |
Um identificador para o algoritmo de hash MD2. | RFC 1319 [en] |
|
BCRYPT_MD4_ALG_HANDLE 0x00000011 |
Um identificador para o algoritmo de hash MD4. | RFC 1320 [en] |
|
BCRYPT_MD5_ALG_HANDLE 0x00000021 |
Um identificador para o algoritmo de hash MD5. | RFC 1321 [en] |
|
BCRYPT_SHA1_ALG_HANDLE 0x00000031 |
Um identificador para o algoritmo de hash seguro de 160 bits. | FIPS 180-4 |
|
BCRYPT_SHA256_ALG_HANDLE 0x00000041 |
Um identificador para o algoritmo de hash seguro de 256 bits. | FIPS 180-4 |
|
BCRYPT_SHA384_ALG_HANDLE 0x00000051 |
Um identificador para o algoritmo de hash seguro de 384 bits. | FIPS 180-4 |
|
BCRYPT_SHA512_ALG_HANDLE 0x00000061 |
Um identificador para o algoritmo de hash seguro de 512 bits. | FIPS 180-4 |
|
BCRYPT_HMAC_SHA1_ALG_HANDLE 0x000000A1 |
Um identificador para o código de autenticação de mensagem baseado em hash usando o algoritmo de hash seguro de 160 bits. | FIPS 180-4, FIPS 198-1 |
|
BCRYPT_HMAC_SHA256_ALG_HANDLE 0x000000B1 |
Um identificador para o código de autenticação de mensagem baseado em hash usando o algoritmo de hash seguro de 256 bits. | FIPS 180-4, FIPS 198-1 |
|
BCRYPT_HMAC_SHA384_ALG_HANDLE 0x000000C1 |
Um identificador para o código de autenticação de mensagem baseado em hash usando o algoritmo de hash seguro de 384 bits. | FIPS 180-4, FIPS 198-1 |
|
BCRYPT_HMAC_SHA512_ALG_HANDLE 0x000000D1 |
Um identificador para o código de autenticação de mensagem baseado em hash usando o algoritmo de hash seguro de 512 bits. | FIPS 180-4, FIPS 198-1 |
|
BCRYPT_HMAC_MD2_ALG_HANDLE 0x00000121 |
Um identificador para o código de autenticação de mensagem baseado em hash usando o algoritmo de hash MD2. | RFC 1319, RFC 2104 |
|
BCRYPT_HMAC_MD4_ALG_HANDLE 0x00000131 |
Um identificador para o código de autenticação de mensagem baseado em hash usando o algoritmo de hash MD4. | RFC 1320, RFC 2104 |
|
BCRYPT_HMAC_MD5_ALG_HANDLE 0x00000091 |
Um identificador para o código de autenticação de mensagem baseado em hash usando o algoritmo de hash MD4. | RFC 1321, RFC 2104 |
| Disponível no Windows 11, versão 23H2 | ||
|
BCRYPT_SHA3_256_ALG_HANDLE 0x000003B1 |
Um identificador para o algoritmo de hash seguro SHA3 de 256 bits. | FIPS 202 |
|
BCRYPT_SHA3_384_ALG_HANDLE 0x000003C1 |
Um identificador para o algoritmo de hash seguro SHA3 de 384 bits. | FIPS 202 |
|
BCRYPT_SHA3_512_ALG_HANDLE 0x000003D1 |
Um identificador para o algoritmo de hash seguro SHA3 de 512 bits. | FIPS 202 |
|
BCRYPT_HMAC_SHA3_256_ALG_HANDLE 0x000003E1 |
Um identificador para o código de autenticação de mensagem baseado em hash usando o algoritmo de hash seguro SHA3 de 256 bits. | FIPS 202, FIPS 198-1 |
|
BCRYPT_HMAC_SHA3_384_ALG_HANDLE 0x000003F1 |
Um identificador para o código de autenticação de mensagem baseado em hash usando o algoritmo de hash seguro SHA3 de 384 bits. | FIPS 202, FIPS 198-1 |
|
BCRYPT_HMAC_SHA3_512_ALG_HANDLE 0x00000401 |
Um identificador para o código de autenticação de mensagem baseado em hash usando o algoritmo de hash seguro SHA3 de 512 bits. | FIPS 202, FIPS 198-1 |
|
BCRYPT_CSHAKE128_ALG_HANDLE 0x00000411 |
Um identificador para o algoritmo de hash cSHAKE de 128 bits XOF (função de saída extensível) derivado de SHA3. | SP 800-185 |
|
BCRYPT_CSHAKE256_ALG_HANDLE 0x00000421 |
Um identificador para o algoritmo de hash cSHAKE de 256 bits XOF (função de saída extensível) derivado de SHA3. | SP 800-185 |
|
BCRYPT_KMAC128_ALG_HANDLE 0x00000431 |
Um identificador para o código de autenticação de mensagem Keccak (KMAC) derivado de SHA3 criado em cSHAKE128. | SP 800-185 |
|
BCRYPT_KMAC256_ALG_HANDLE 0x00000441 |
Um identificador para o código de autenticação de mensagem Keccak (KMAC) derivado de SHA3 criado em cSHAKE256. | SP 800-185 |
Algoritmos de assinatura digital PQ
Observação
Os identificadores PQDSA nesta seção referem-se a um produto de pré-lançamento que pode ser substancialmente modificado antes de ser lançado comercialmente. A Microsoft não oferece garantias, expressas ou implícitas, em relação às informações fornecidas aqui. O recurso descrito nesta seção está disponível em versões de pré-lançamento do Windows Insider Preview.
| Constante | Descrição | Standards |
|---|---|---|
| BCRYPT_LMS_ALG_HANDLE | Um identificador para o algoritmo Leighton-Micali Hash-Based Signature (LMS). | RFC 8554 |
| BCRYPT_MLDSA_ALG_HANDLE | Um identificador para o Module-Lattice-Based Digital Signature Algorithm (ML-DSA). | FIPS 204 |
| BCRYPT_SLHDSA_ALG_HANDLE | Um identificador para o algoritmo de assinatura digital baseado em hash apátrida (SLH-DSA). | FIPS 205 |
| BCRYPT_XMSS_ALG_HANDLE | Um identificador para o algoritmo baseado em hash stateful eXtended Merkle Signature Scheme (XMSS). | RFC 8391 |
Algoritmos de cifra de fluxo
| Constante | Descrição | Standards |
|---|---|---|
|
BCRYPT_RC4_ALG_HANDLE 0x00000071 |
Um identificador para o algoritmo de cifra de fluxo RC4. | Vários |
Algoritmos de gerador de números aleatórios
| Constante | Descrição | Standards |
|---|---|---|
|
BCRYPT_RNG_ALG_HANDLE 0x00000081 |
Um identificador para o algoritmo do gerador de números aleatórios. | A partir do Windows 10: O algoritmo RNG utilizado é o AES CTR_DRBG, definido no SP 800-90A. |
Algoritmos de função de derivação de chave (KDF)
| Constante | Descrição |
|---|---|
|
BCRYPT_CAPI_KDF_ALG_HANDLE 0x00000321 |
Um identificador para o algoritmo de função de derivação de chave Crypto API (CAPI). Usado pelas funções BCryptKeyDerivation e NCryptKeyDerivation . |
|
BCRYPT_PBKDF2_ALG_HANDLE 0x00000331 |
Um identificador para o algoritmo PBKDF2 (função de derivação de chave baseada em senha 2). Usado pelas funções BCryptKeyDerivation e NCryptKeyDerivation . |
|
BCRYPT_SP800108_CTR_HMAC_ALG_HANDLE 0x00000341 |
Um identificador para o modo Contador, algoritmo de função de derivação de chave de código de autenticação de mensagem baseado em hash (HMAC). Usado pelas funções BCryptKeyDerivation e NCryptKeyDerivation . |
|
BCRYPT_SP80056A_CONCAT_ALG_HANDLE 0x00000351 |
Um identificador para o algoritmo da função de derivação de chave SP800-56A. Usado pelas funções BCryptKeyDerivation e NCryptKeyDerivation . |
|
BCRYPT_HKDF_ALG_HANDLE 0x00000391 |
Um identificador para a função de derivação de chave Extract-and-Expand baseada em HMAC. Usado pelas funções BCryptKeyDerivation e NCryptKeyDerivation . |
Algoritmos de mecanismo de encapsulamento de chave (KEM)
Observação
Os identificadores de ML-KEM nesta seção referem-se a um produto de pré-lançamento que pode ser substancialmente modificado antes de ser lançado comercialmente. A Microsoft não oferece garantias, expressas ou implícitas, em relação às informações fornecidas aqui. O recurso descrito nesta seção está disponível em versões de pré-lançamento do Windows Insider Preview.
| Constante | Descrição | Standards |
|---|---|---|
| BCRYPT_MLKEM_ALG_HANDLE | Um identificador para o algoritmo Module-Lattice-Based Key Encapsulation Mechanism (ML-KEM). | FIPS 203 |
Algoritmos assimétricos
| Constante | Descrição | Standards |
|---|---|---|
|
BCRYPT_DH_ALG_HANDLE 0x00000281 |
Um identificador para o algoritmo de troca de chaves Diffie-Hellman. | PKCS #3 |
|
BCRYPT_DSA_ALG_HANDLE 0x000002D1 |
Um identificador para o algoritmo de assinatura digital DSA (Digital Signature Algorithm). |
FIPS 186-2 A partir do Windows 8: Este algoritmo suporta FIPS 186-3. As chaves menores ou iguais a 1024 bits aderem ao FIPS 186-2 e as chaves maiores que 1024 ao FIPS 186-3. |
|
BCRYPT_ECDH_ALG_HANDLE 0x00000291 |
Um identificador para a curva elíptica prime genérica Diffie-Hellman algoritmo de troca de chaves. | SP 800-56A |
|
BCRYPT_ECDH_P256_ALG_HANDLE 0x000002A1 |
Um identificador para a curva elíptica prime de 256 bits Diffie-Hellman algoritmo de troca de chaves. | SP 800-56A |
|
BCRYPT_ECDH_P384_ALG_HANDLE 0x000002B1 |
Um identificador para a curva elíptica prime de 384 bits Diffie-Hellman algoritmo de troca de chaves. | SP 800-56A |
|
BCRYPT_ECDH_P521_ALG_HANDLE 0x000002C1 |
Um identificador para a curva elíptica prime de 521 bits Diffie-Hellman algoritmo de troca de chaves. | SP 800-56A |
|
BCRYPT_ECDSA_ALG_HANDLE 0x000000F1 |
Um identificador para o algoritmo genérico de assinatura digital de curva elíptica prime. | ANSI X9,62 |
|
BCRYPT_ECDSA_P256_ALG_HANDLE 0x000002E1 |
Um identificador para o algoritmo de assinatura digital de curva elíptica prime de 256 bits. | FIPS 186-2, X9,62 |
|
BCRYPT_ECDSA_P384_ALG_HANDLE 0x000002F1 |
Um identificador para o algoritmo de assinatura digital de curva elíptica prime de 384 bits. | FIPS 186-2, X9,62 |
|
BCRYPT_ECDSA_P521_ALG_HANDLE 0x00000301 |
Um identificador para o algoritmo de assinatura digital de curva elíptica prime de 521 bits. | FIPS 186-2, X9,62 |
|
BCRYPT_RSA_ALG_HANDLE 0x000000E1 |
Um identificador para o algoritmo de chave pública RSA. | PKCS #1 v1.5 e v2.0 |
|
BCRYPT_RSA_SIGN_ALG_HANDLE 0x00000311 |
Um identificador para o algoritmo de assinatura RSA. Este algoritmo não é suportado atualmente. Você pode usar o algoritmo BCRYPT_RSA_ALG_HANDLE para executar operações de assinatura RSA. | PKCS #1 v1.5 e v2.0. |
Bloquear algoritmos de código de autenticação de mensagens com base em cifra e cifra
| Constante | Descrição | Standards |
|---|---|---|
|
BCRYPT_AES_CMAC_ALG_HANDLE 0x00000101 |
Um identificador para o algoritmo de encriptação simétrica baseado em código de autenticação de mensagem (CMAC) baseado em cifra AES (Advanced Encryption Standard). | SP 800-38B |
|
BCRYPT_AES_GMAC_ALG_HANDLE 0x00000111 |
Um identificador para o algoritmo de encriptação simétrica Advanced Encryption Standard (AES) Galois message authentication code (GMAC). SP800-38D | |
|
BCRYPT_3DES_CBC_ALG_HANDLE 0x00000141 |
Um identificador para o algoritmo triplo Data Encryption Standard usando o modo Cipher Block Chaining (CBC). | SP 800-67, SP 800-38A |
|
BCRYPT_3DES_ECB_ALG_HANDLE 0x00000151 |
Um identificador para o algoritmo triplo Data Encryption Standard usando o modo Electronic Codebook (ECB). | SP 800-67, SP 800-38A |
|
BCRYPT_3DES_CFB_ALG_HANDLE 0x00000161 |
Um identificador para o algoritmo triplo Data Encryption Standard usando o modo Cipher Feedback (CFB). | SP 800-67, SP 800-38A |
|
BCRYPT_3DES_112_CBC_ALG_HANDLE 0x00000171 |
Um identificador para o algoritmo padrão de criptografia de dados triplo de 112 bits usando o modo de encadeamento de blocos de codificação (CBC). | SP 800-67, SP 800-38A |
|
BCRYPT_3DES_112_ECB_ALG_HANDLE 0x00000181 |
Um identificador para o algoritmo triplo de 112 bits Data Encryption Standard usando o modo Electronic Codebook (ECB). | SP 800-67, SP 800-38A |
|
BCRYPT_3DES_112_CFB_ALG_HANDLE 0x00000191 |
Um identificador para o algoritmo Padrão de Criptografia de Dados triplo de 112 bits usando o modo CFB (Cipher Feedback). | SP 800-67, SP 800-38A |
|
BCRYPT_AES_CBC_ALG_HANDLE 0x000001A1 |
Um identificador para o algoritmo AES (Advanced Encryption Standard) usando o Modo de Encadeamento de Blocos de Codificação (CBC). | FIPS 197 |
|
BCRYPT_AES_ECB_ALG_HANDLE 0x000001B1 |
Um identificador para o algoritmo AES (Advanced Encryption Standard) usando o Modo de Livro de Código Eletrônico (ECB). | FIPS 197 |
|
BCRYPT_AES_CFB_ALG_HANDLE 0x000001C1 |
Um identificador para o algoritmo AES (Advanced Encryption Standard) usando o Modo de Feedback de Cifra (CFB). | FIPS 197 |
|
BCRYPT_AES_CCM_ALG_HANDLE 0x000001D1 |
Um identificador para o algoritmo AES (Advanced Encryption Standard) usando o contador com modo CBC-MAC (CCM). | FIPS 197 |
|
BCRYPT_AES_GCM_ALG_HANDLE 0x000001E1 |
Um identificador para o algoritmo AES (Advanced Encryption Standard) usando o Galois Counter Mode (GCM). | FIPS 197 |
|
BCRYPT_DES_CBC_ALG_HANDLE 0x000001F1 |
Um identificador para o algoritmo DES (Data Encryption Standard) usando o GCM (Cipher Block Chaining Mode). | FIPS 46-3, FIPS 81 |
|
BCRYPT_DES_ECB_ALG_HANDLE 0x00000201 |
Um identificador para o algoritmo Data Encryption Standard (DES) usando o Electronic Codebook Mode (ECB). | FIPS 46-3, FIPS 81 |
|
BCRYPT_DES_CFB_ALG_HANDLE 0x00000211 |
Um identificador para o algoritmo Data Encryption Standard (DES) usando o Cipher Feedback Mode (CFB). | FIPS 46-3, FIPS 81 |
Comentários
Você pode usar essas alças em qualquer situação que exija uma alça de algoritmo. No entanto, qualquer chamada para BCryptSetProperty falha porque o identificador de algoritmo é compartilhado e não pode ser modificado. Além disso, esses identificadores não podem ser usados no IRQL=DISPATCH modo kernel.
Conteúdo relacionado
- BCryptOpenAlgorithmProvider
- NCryptCreatePersistedKey