структура BCRYPT_RSAKEY_BLOB (bcrypt.h)
Структура BCRYPT_RSAKEY_BLOB используется в качестве заголовка для открытого ключа RSA или большого двоичного объектазакрытого ключа в памяти.
Синтаксис
typedef struct _BCRYPT_RSAKEY_BLOB {
ULONG Magic;
ULONG BitLength;
ULONG cbPublicExp;
ULONG cbModulus;
ULONG cbPrime1;
ULONG cbPrime2;
} BCRYPT_RSAKEY_BLOB;
Члены
Magic
Указывает тип ключа RSA, который представляет большой двоичный объект. Это может быть одно из следующих значений.
BitLength
Размер ключа в битах.
cbPublicExp
Размер (в байтах) экспоненты ключа. С Windows 10 версии 1903 общедоступные экспоненты больше (2^64–1) больше не поддерживаются.
cbModulus
Размер (в байтах) модуля ключа.
cbPrime1
Размер (в байтах) первого простого номера ключа. Используется только для больших двоичных объектов с закрытым ключом.
cbPrime2
Размер (в байтах) второго простого номера ключа. Используется только для больших двоичных объектов с закрытым ключом.
Комментарии
Эта структура используется в качестве заголовка для буфера большего размера. Большой двоичный объект с открытым ключом RSA (BCRYPT_RSAPUBLIC_BLOB) имеет следующий формат в непрерывной памяти. Все числа, следующие за структурой, имеют формат big-endian.
BCRYPT_RSAKEY_BLOB
PublicExponent[cbPublicExp] // Big-endian.
Modulus[cbModulus] // Big-endian.
Большой двоичный объект с закрытым ключом RSA (BCRYPT_RSAPRIVATE_BLOB) имеет следующий формат в непрерывной памяти. Все числа, следующие за структурой, имеют формат big-endian.
BCRYPT_RSAKEY_BLOB
PublicExponent[cbPublicExp] // Big-endian.
Modulus[cbModulus] // Big-endian.
Prime1[cbPrime1] // Big-endian.
Prime2[cbPrime2] // Big-endian.
Полный большой двоичный объект с закрытым ключом RSA (BCRYPT_RSAFULLPRIVATE_BLOB) имеет следующий формат в непрерывной памяти. Все числа, следующие за структурой, имеют формат big-endian.
Обратите внимание, что в разных версиях Windows значение, которое Private Exponent принимает из вызова BCryptExportKey , может отличаться, так как существует несколько математически эквивалентных представлений PrivateExponent в байтах cbModulus. Примечательно, что в некоторых версиях Private Exponent будет экспортироваться по модулю (Prime1 - 1) * (Prime2 - 1), а в других — по модулю 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.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows Vista [только классические приложения] |
Минимальная версия сервера | Windows Server 2008 [только классические приложения] |
Верхняя часть | bcrypt.h |