BCRYPT_RSAKEY_BLOB structure (bcrypt.h)
La structure BCRYPT_RSAKEY_BLOB est utilisée comme en-tête pour une clé publique RSA ou un objet BLOBde clé privée en mémoire.
Syntaxe
typedef struct _BCRYPT_RSAKEY_BLOB {
ULONG Magic;
ULONG BitLength;
ULONG cbPublicExp;
ULONG cbModulus;
ULONG cbPrime1;
ULONG cbPrime2;
} BCRYPT_RSAKEY_BLOB;
Membres
Magic
Spécifie le type de clé RSA que représente cet objet BLOB. Il peut s’agir de l’une des valeurs suivantes.
Valeur | Signification |
---|---|
|
La clé est une clé publique RSA. |
|
La clé est une clé privée RSA. |
|
La clé est une clé privée RSA complète. |
BitLength
Taille de la clé, en bits.
cbPublicExp
Taille, en octets, de l’exposant de la clé. Depuis Windows 10 version 1903, les exposants publics supérieurs à (2^64 - 1) ne sont plus pris en charge.
cbModulus
Taille, en octets, du module de la clé.
cbPrime1
Taille, en octets, du premier nombre premier de la clé. Il est utilisé uniquement pour les objets BLOB de clés privées.
cbPrime2
Taille, en octets, du deuxième nombre premier de la clé. Il est utilisé uniquement pour les objets BLOB de clés privées.
Remarques
Cette structure est utilisée comme en-tête pour une mémoire tampon plus grande. Un objet BLOB à clé publique RSA (BCRYPT_RSAPUBLIC_BLOB) a le format suivant en mémoire contiguë. Tous les nombres qui suivent la structure sont au format big-endian.
BCRYPT_RSAKEY_BLOB
PublicExponent[cbPublicExp] // Big-endian.
Modulus[cbModulus] // Big-endian.
Un objet BLOB de clé privée RSA (BCRYPT_RSAPRIVATE_BLOB) a le format suivant en mémoire contiguë. Tous les nombres qui suivent la structure sont au format big-endian.
BCRYPT_RSAKEY_BLOB
PublicExponent[cbPublicExp] // Big-endian.
Modulus[cbModulus] // Big-endian.
Prime1[cbPrime1] // Big-endian.
Prime2[cbPrime2] // Big-endian.
Un objet BLOB de clé privée RSA complet (BCRYPT_RSAFULLPRIVATE_BLOB) a le format suivant en mémoire contiguë. Tous les nombres qui suivent la structure sont au format big-endian.
Notez que dans différentes versions de Windows, la valeur que PrivateExponent prend à partir d’un appel de BCryptExportKey peut être différente, car il existe plusieurs représentations mathématiquement équivalentes du PrivateExponent en octets cbModulus. Notamment, dans certaines versions, le PrivateExponent sera exporté modulo (Prime1 - 1) * (Prime2 - 1), et dans d’autres, il sera exporté 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.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows Vista [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows Server 2008 [applications de bureau uniquement] |
En-tête | bcrypt.h |