struttura BCRYPT_RSAKEY_BLOB (bcrypt.h)
La struttura BCRYPT_RSAKEY_BLOB viene usata come intestazione per una chiave pubblica RSA o UN BLOB di chiavi private in memoria.
Sintassi
typedef struct _BCRYPT_RSAKEY_BLOB {
ULONG Magic;
ULONG BitLength;
ULONG cbPublicExp;
ULONG cbModulus;
ULONG cbPrime1;
ULONG cbPrime2;
} BCRYPT_RSAKEY_BLOB;
Members
Magic
Specifica il tipo di chiave RSA rappresentata da questo BLOB. Può trattarsi di uno dei valori seguenti.
BitLength
Dimensione in bit della chiave.
cbPublicExp
Dimensione, in byte, dell'esponente della chiave. A partire da Windows 10 versione 1903, gli esponenti pubblici più grandi di (2^64 - 1) non sono più supportati.
cbModulus
Dimensione, in byte, del modulo della chiave.
cbPrime1
Dimensione, in byte, del primo numero primo della chiave. Questa opzione viene usata solo per i BLOB di chiave privata.
cbPrime2
Dimensione, in byte, del secondo numero primo della chiave. Questa opzione viene usata solo per i BLOB di chiave privata.
Commenti
Questa struttura viene usata come intestazione per un buffer più grande. Un BLOB di chiave pubblica RSA (BCRYPT_RSAPUBLIC_BLOB) ha il formato seguente in memoria contigua. Tutti i numeri che seguono la struttura sono in formato big-endian.
BCRYPT_RSAKEY_BLOB
PublicExponent[cbPublicExp] // Big-endian.
Modulus[cbModulus] // Big-endian.
Un BLOB di chiave privata RSA (BCRYPT_RSAPRIVATE_BLOB) ha il formato seguente in memoria contigua. Tutti i numeri che seguono la struttura sono in formato big-endian.
BCRYPT_RSAKEY_BLOB
PublicExponent[cbPublicExp] // Big-endian.
Modulus[cbModulus] // Big-endian.
Prime1[cbPrime1] // Big-endian.
Prime2[cbPrime2] // Big-endian.
Un BLOB di chiave privata RSA completo (BCRYPT_RSAFULLPRIVATE_BLOB) ha il formato seguente in memoria contigua. Tutti i numeri che seguono la struttura sono in formato big-endian.
Si noti che in versioni diverse di Windows, il valore che PrivateExponent prende da una chiamata di BCryptExportKey può essere diverso perché esistono diverse rappresentazioni matematicamente equivalenti del PrivateExponent in byte cbModulus. In particolare, in alcune versioni PrivateExponent verrà esportato modulo (Prime1 - 1) * (Prime2 - 1) e in altri verrà esportato 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.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows Vista [solo app desktop] |
Server minimo supportato | Windows Server 2008 [solo app desktop] |
Intestazione | bcrypt.h |