estructura de BCRYPT_RSAKEY_BLOB (bcrypt.h)

La estructura BCRYPT_RSAKEY_BLOB se usa como encabezado para una clave pública RSA o blob de clave privada en memoria.

Sintaxis

typedef struct _BCRYPT_RSAKEY_BLOB {
  ULONG Magic;
  ULONG BitLength;
  ULONG cbPublicExp;
  ULONG cbModulus;
  ULONG cbPrime1;
  ULONG cbPrime2;
} BCRYPT_RSAKEY_BLOB;

Miembros

Magic

Especifica el tipo de clave RSA que representa este BLOB. Puede ser uno de los siguientes valores.

Valor Significado
BCRYPT_RSAPUBLIC_MAGIC
La clave es una clave pública RSA.
BCRYPT_RSAPRIVATE_MAGIC
La clave es una clave privada RSA.
BCRYPT_RSAFULLPRIVATE_MAGIC
La clave es una clave privada RSA completa.

BitLength

El tamaño, en bits, de la clave.

cbPublicExp

Tamaño, en bytes, del exponente de la clave. A partir de Windows 10 versión 1903, ya no se admiten exponentes públicos mayores que (2^64 - 1).

cbModulus

Tamaño, en bytes, del módulo de la clave.

cbPrime1

Tamaño, en bytes, del primer número primo de la clave. Esto solo se usa para blobs de clave privada.

cbPrime2

Tamaño, en bytes, del segundo número primo de la clave. Esto solo se usa para blobs de clave privada.

Comentarios

Esta estructura se usa como encabezado para un búfer mayor. Un BLOB de clave pública RSA (BCRYPT_RSAPUBLIC_BLOB) tiene el formato siguiente en memoria contigua. Todos los números que siguen a la estructura están en formato big-endian.


BCRYPT_RSAKEY_BLOB
PublicExponent[cbPublicExp] // Big-endian.
Modulus[cbModulus] // Big-endian.

Un BLOB de clave privada RSA (BCRYPT_RSAPRIVATE_BLOB) tiene el siguiente formato en memoria contigua. Todos los números que siguen a la estructura están en formato big-endian.


BCRYPT_RSAKEY_BLOB
PublicExponent[cbPublicExp] // Big-endian.
Modulus[cbModulus] // Big-endian.
Prime1[cbPrime1] // Big-endian.
Prime2[cbPrime2] // Big-endian.

Un BLOB de clave privada RSA completo (BCRYPT_RSAFULLPRIVATE_BLOB) tiene el siguiente formato en memoria contigua. Todos los números que siguen a la estructura están en formato big-endian.

Tenga en cuenta que en diferentes versiones de Windows, el valor que PrivateExponent toma de una llamada de BCryptExportKey puede ser diferente, ya que hay varias representaciones matemáticamente equivalentes de privateExponent en bytes cbModulus. En particular, en algunas versiones, el módulo PrivateExponent se exportará (Prime1 - 1) * (Prime2 - 1) y en otros se exportará modulo LeastCommonMultiple(Prime1 - 1, Prime2 - 1).


BCRYPT_RSAKEY_BLOB
PublicExponent[cbPublicExp] // Big-endian.
Modulus[cbModulus] // Big-endian.
Prime1[cbPrime1] // Big-endian.
Prime2[cbPrime2] // Big-endian.
Exponent1[cbPrime1] // Big-endian.
Exponent2[cbPrime2] // Big-endian.
Coefficient[cbPrime1] // Big-endian.
PrivateExponent[cbModulus] // Big-endian.

Requisitos

Requisito Value
Cliente mínimo compatible Windows Vista [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2008 [solo aplicaciones de escritorio]
Encabezado bcrypt.h

Consulte también

BCRYPT_KEY_BLOB

BCryptExportKey

BCryptImportKey