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.
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 |