Importação e exportação de chave
Você pode importar e exportar chaves simétricas e chaves assimétricas com CNG. E você pode usar a funcionalidade de exportação e importação de chaves para mover chaves entre computadores.
Chaves simétricas
Para importar ou exportar chaves simétricas (ou de sessão) nas quais a mesma chave é usada para criptografar e descriptografar alguns dados, você pode usar as funçõesBCryptImportKey e BCryptExportKey. Normalmente, primeiro você exporta uma chave usando a função BCryptExportKey antes de importar usando a função BCryptImportKey. As funções são projetadas para habilitar a criptografia de chaves exportadas e importadas usando os parâmetros hExportKey e hImportKey; no entanto, a implementação da Microsoft dessas funções não dá suporte à criptografia de chaves exportadas e importadas.
Chaves assimétricas
Para importar pares de chaves assimétricos (ou públicos/privados) nos quais uma chave é usada para criptografar e a outra é usada para descriptografar alguns dados, você pode usar uma das funções BCryptImportKeyPair ou NCryptImportKey. Um provedor de CNG deve codificar o par de chaves usando um tipo deblob de chave decom suporte. BCryptExportKey pode ser usado para criar o BLOB de chave codificada. estruturas CNG descreve os principais tipos de BLOB e estruturas compatíveis com o Provedor de Armazenamento de Chaves da Microsoft.
Para BCryptExportKey para criar um par de chaves persistente, o BLOB da chave de entrada deve conter uma chave privada . chaves públicas não são persistentes.
O nome da chave e a política de exportação não fazem parte da estrutura deblobdefinida em estruturas CNG . No entanto, se um BLOB for de um tipo BLOB opaco (como a imagem de memória de um estado de chave interno), o BLOB poderá conter o nome da chave e as propriedades da política de exportação.
O procedimento a seguir descreve como importar uma chave privada persistente com suas propriedades.
importar uma chave persistente
- Crie uma chave persistente usando a funçãoNCryptCreatePersistedKey.
- Defina as propriedades desejadas no objeto de chave usando a função NCryptSetProperty.
- Defina o BLOB de chave de importação como uma propriedade na chave, com o tipo BLOB como o nome da propriedade.
- Finalize a importação de chave persistente usando a função NCryptFinalizeKey.