estrutura BCRYPT_RSAKEY_BLOB (bcrypt.h)
A estrutura BCRYPT_RSAKEY_BLOB é usada como um cabeçalho para uma chave pública RSA ou BLOB de chave privada na memória.
Sintaxe
typedef struct _BCRYPT_RSAKEY_BLOB {
ULONG Magic;
ULONG BitLength;
ULONG cbPublicExp;
ULONG cbModulus;
ULONG cbPrime1;
ULONG cbPrime2;
} BCRYPT_RSAKEY_BLOB;
Membros
Magic
Especifica o tipo de chave RSA que esse BLOB representa. Esse pode ser um dos valores a seguir.
BitLength
O tamanho, em bits, da chave.
cbPublicExp
O tamanho, em bytes, do expoente da chave. A partir de Windows 10 versão 1903, não há mais suporte para expoentes públicos maiores que (2^64 – 1).
cbModulus
O tamanho, em bytes, do módulo da chave.
cbPrime1
O tamanho, em bytes, do primeiro número primo da chave. Isso só é usado para BLOBs de chave privada.
cbPrime2
O tamanho, em bytes, do segundo número primo da chave. Isso só é usado para BLOBs de chave privada.
Comentários
Essa estrutura é usada como um cabeçalho para um buffer maior. Um BLOB de chave pública RSA (BCRYPT_RSAPUBLIC_BLOB) tem o seguinte formato na memória contígua. Todos os números que seguem a estrutura estão no formato big-endian.
BCRYPT_RSAKEY_BLOB
PublicExponent[cbPublicExp] // Big-endian.
Modulus[cbModulus] // Big-endian.
Um BLOB de chave privada RSA (BCRYPT_RSAPRIVATE_BLOB) tem o seguinte formato na memória contígua. Todos os números que seguem a estrutura estão no formato big-endian.
BCRYPT_RSAKEY_BLOB
PublicExponent[cbPublicExp] // Big-endian.
Modulus[cbModulus] // Big-endian.
Prime1[cbPrime1] // Big-endian.
Prime2[cbPrime2] // Big-endian.
Um BLOB de chave privada RSA completo (BCRYPT_RSAFULLPRIVATE_BLOB) tem o seguinte formato na memória contígua. Todos os números que seguem a estrutura estão no formato big-endian.
Observe que, em diferentes versões do Windows, o valor que PrivateExponent recebe de uma chamada de BCryptExportKey pode ser diferente, pois há várias representações matematicamente equivalentes do PrivateExponent em bytes cbModulus. Notavelmente, em algumas versões, o PrivateExponent será exportado modulo (Prime1 - 1) * (Prime2 - 1) e, em outras, será exportado 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 | Valor |
---|---|
Cliente mínimo com suporte | Windows Vista [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows Server 2008 [somente aplicativos da área de trabalho] |
Cabeçalho | bcrypt.h |