Compartir a través de


Importación y exportación de claves

Puede importar y exportar claves simétricas y claves asimétricas con CNG. Además, puede usar la funcionalidad de exportación e importación de claves para mover claves entre máquinas.

Claves simétricas

Para importar o exportar claves simétricas (o de sesión) en las que se usa la misma clave para cifrar y descifrar algunos datos, puede usar las funciones de BCryptImportKey y BCryptExportKey. Normalmente, primero exporta una clave mediante la función BCryptExportKey antes de importar mediante la función BCryptImportKey. Las funciones están diseñadas para habilitar el cifrado de claves exportadas e importadas mediante el hExportKey y parámetros hImportKey; Sin embargo, la implementación de Microsoft de estas funciones no admite el cifrado de claves exportadas e importadas.

Claves asimétricas

Para importar pares de claves asimétricos (o públicos y privados) en los que se usa una clave para cifrar y la otra se usa para descifrar algunos datos, puede usar cualquiera de los BCryptImportKeyPair o funciones NCryptImportKey. Un proveedor de CNG debe codificar el par de claves mediante un tipo de blob de clavecompatible. BCryptExportKey se puede usar para crear el BLOB de clave codificada. estructuras de CNG describe los tipos y estructuras de BLOB clave que admite el proveedor de almacenamiento de claves de Microsoft.

Para BCryptExportKey para crear un par de claves persistente, el BLOB de clave de entrada debe contener una clave privada . no se conservan las claves públicas.

El nombre de clave y la directiva de exportación no forman parte de la estructura deblob dedefinida en estructuras CNG. Sin embargo, si un BLOB es de un tipo BLOB opaco (como la imagen de memoria de un estado de clave interna), el BLOB podría contener el nombre de clave y las propiedades de la directiva de exportación.

En el procedimiento siguiente se describe cómo importar una clave privada persistente con sus propiedades.

Para importar una clave persistente

  1. Cree una clave persistente mediante la función NCryptCreatePersistedKey.
  2. Establezca las propiedades deseadas en el objeto de clave mediante la función NCryptSetProperty.
  3. Establezca la clave de importación BLOB como una propiedad en la clave, con el tipo BLOB como nombre de propiedad.
  4. Finalice la importación de claves persistentes mediante la función NCryptFinalizeKey.