BCRYPT_RSAKEY_BLOB-Struktur (bcrypt.h)
Die BCRYPT_RSAKEY_BLOB-Struktur wird als Header für einen öffentlichen RSA-Schlüssel oder ein BLOB mit privatem Schlüssel im Arbeitsspeicher verwendet.
Syntax
typedef struct _BCRYPT_RSAKEY_BLOB {
ULONG Magic;
ULONG BitLength;
ULONG cbPublicExp;
ULONG cbModulus;
ULONG cbPrime1;
ULONG cbPrime2;
} BCRYPT_RSAKEY_BLOB;
Member
Magic
Gibt den Typ des RSA-Schlüssels an, den dieser BLOB darstellt. Dies kann einer der folgenden Werte sein.
BitLength
Die Größe des Schlüssels in Bits.
cbPublicExp
Die Größe des Exponenten des Schlüssels in Bytes. Ab Windows 10 Version 1903 werden öffentliche Exponenten, die größer als (2^64 - 1) sind, nicht mehr unterstützt.
cbModulus
Die Größe des Modulus des Schlüssels in Bytes.
cbPrime1
Die Größe der ersten Primzahl des Schlüssels in Byte. Dies wird nur für BLOBs mit privatem Schlüssel verwendet.
cbPrime2
Die Größe der zweiten Primzahl des Schlüssels in Byte. Dies wird nur für BLOBs mit privatem Schlüssel verwendet.
Hinweise
Diese Struktur wird als Header für einen größeren Puffer verwendet. Ein RSA-BLOB mit öffentlichem Schlüssel (BCRYPT_RSAPUBLIC_BLOB) hat das folgende Format im zusammenhängenden Arbeitsspeicher. Alle Zahlen, die der Struktur folgen, sind im Big-Endian-Format.
BCRYPT_RSAKEY_BLOB
PublicExponent[cbPublicExp] // Big-endian.
Modulus[cbModulus] // Big-endian.
Ein RSA-Blob mit privatem Schlüssel (BCRYPT_RSAPRIVATE_BLOB) hat das folgende Format im zusammenhängenden Arbeitsspeicher. Alle Zahlen, die der Struktur folgen, sind im Big-Endian-Format.
BCRYPT_RSAKEY_BLOB
PublicExponent[cbPublicExp] // Big-endian.
Modulus[cbModulus] // Big-endian.
Prime1[cbPrime1] // Big-endian.
Prime2[cbPrime2] // Big-endian.
Ein vollständiges RSA-Blob mit privatem Schlüssel (BCRYPT_RSAFULLPRIVATE_BLOB) hat das folgende Format im zusammenhängenden Arbeitsspeicher. Alle Zahlen, die der Struktur folgen, sind im Big-Endian-Format.
Beachten Sie, dass in verschiedenen Versionen von Windows der Wert, den PrivateExponent aus einem Aufruf von BCryptExportKey übernimmt, unterschiedlich sein kann, da es mehrere mathematisch gleichwertige Darstellungen des PrivateExponent in cbModulus-Bytes gibt. Insbesondere in einigen Versionen wird die PrivateExponent modulo (Prime1 - 1) * (Prime2 - 1) exportiert, und in anderen wird es exportiert 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.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows Vista [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2008 [nur Desktop-Apps] |
Kopfzeile | bcrypt.h |