Primitivos criptográficos
A API CNG fornece um conjunto de funções que executam operações criptográficas básicas, como a criação de hashes ou a encriptação e desencriptação de dados. Para obter mais informações sobre essas funções, consulte CNG Cryptographic Primitive Functions.
CNG implementa inúmeros algoritmos criptográficos. Cada algoritmo ou classe de algoritmos expõe sua própria API primitiva. Várias implementações de um determinado algoritmo podem ser instaladas ao mesmo tempo; no entanto, apenas uma implementação será o padrão em um determinado momento.
Cada classe de algoritmo no CNG é representada por um roteador primitivo. Os aplicativos que usam as funções primitivas CNG serão vinculados ao arquivo binário do roteador Bcrypt.dll no modo de usuário ou Ksecdd.sys no modo kernel antes de chamar as funções. Várias rotinas de roteador gerenciam todas as primitivas do algoritmo. Esses roteadores rastreiam cada implementação de algoritmo instalada no sistema e roteiam cada chamada de função para o módulo de provedor primitivo apropriado.
CNG fornece primitivos para as seguintes classes de algoritmos.
Classe de algoritmo | Descrição |
---|---|
Gerador de números aleatórios |
Geração de números aleatórios conectáveis (RNG). |
Hashing |
Algoritmos usados para hashing, como SHA1 e SHA2. |
Encriptação simétrica |
Algoritmos usados para criptografia simétrica, como AES, 3DES e RC4. |
Encriptação assimétrica |
Algoritmos assimétricos (chave pública) que suportam encriptação, como RSA. |
Assinatura |
Algoritmos de assinatura como DSA e ECDSA. Esta classe também pode ser usada com RSA. |
Acordo secreto |
Algoritmos de concordância secreta, como Diffie-Hellman (DH) e Diffie-Hellman de curva elíptica (ECDH). |
A ilustração a seguir mostra o design e a função das primitivas criptográficas CNG.
O arquivo de cabeçalho Bcrypt.h define a constante MS_PRIMITIVE_PROVIDER como "Microsoft Primitive Provider". Para usar o Microsoft Primitive Provider, passe esse valor para BCryptOpenAlgorithmProvider.