Compartir a través de


Claves RSA/Schannel

Generación y recuperación de claves RSA/Schannel

RSA/Las claves Schannel se pueden generar llamando a la función CryptGenKey. La llamada a CryptGenKey requiere un identificador de algoritmo AT_KEYEXCHANGE pasado en el parámetro Algid .

Para generar un par de claves pública y privada RSA/Schannel

  1. Llame a la función CryptAcquireContext para obtener un identificador para el proveedor criptográfico RSA/Schannel de Microsoft.
  2. Llame a la función CryptGenKey para generar las claves. AT_KEYEXCHANGE debe pasarse para el parámetro Algid y los 16 bits superiores del parámetro dwFlags deben establecerse en el tamaño de clave deseado (512 bits). Se devuelve un identificador de estructura HCRYPTKEY en el parámetro hKey .

Para recuperar un puntero a las claves de usuario RSA/Schannel generadas anteriormente

  1. Llame a la función CryptAcquireContext para obtener un identificador para el proveedor criptográfico RSA/Schannel de Microsoft.
  2. Llame a la función CryptGetUserKey , con el parámetro dwKeySpec establecido en AT_KEYEXCHANGE.

Exportación de claves RSA/Schannel

Las claves maestras se pueden exportar a estructuras BLOB de clave sencillas. Esto debe implementarse de la misma manera que la exportación de claves de cifrado masivanormales RC4 o Estándar de cifrado de datos (DES), como se describe en Blob de clave simple. El miembro aiKeyAlg de la estructura PUBLICKEYSTRUC se establece en el identificador de algoritmo de la clave maestra (CALG_PCT1_MASTER, CALG_SSL2_MASTER, CALG_SSL3_MASTER o CALG_TLS1_MASTER).

Si la función CPExportKey exporta una clave maestra SSL2 y se establece la marca de CRYPT_SSL2_FALLBACK, para ayudar a evitar ataques de reversión de versiones, establezca los ocho primeros bytes del relleno de bloques de cifrado en 0x03 en lugar de en datos aleatorios.

Si la constante CRYPT_DESTROYKEY se especifica en el parámetro dwFlags de la función CPExportKey , el CSP destruye la clave o el identificador de clave después de exportar la clave. Esta marca está pensada para su uso solo con blobs opacos.