Compartilhar via


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

  1. Crie uma chave persistente usando a funçãoNCryptCreatePersistedKey.
  2. Defina as propriedades desejadas no objeto de chave usando a função NCryptSetProperty.
  3. Defina o BLOB de chave de importação como uma propriedade na chave, com o tipo BLOB como o nome da propriedade.
  4. Finalize a importação de chave persistente usando a função NCryptFinalizeKey.