BCRYPT_RSAKEY_BLOB 結構 (bcrypt.h)
BCRYPT_RSAKEY_BLOB 結構會用來作為記憶體中 RSA 公鑰或私鑰BLOB 的標頭。
語法
typedef struct _BCRYPT_RSAKEY_BLOB {
ULONG Magic;
ULONG BitLength;
ULONG cbPublicExp;
ULONG cbModulus;
ULONG cbPrime1;
ULONG cbPrime2;
} BCRYPT_RSAKEY_BLOB;
成員
Magic
指定此 BLOB 所代表的 RSA 金鑰類型。 這可以是下列其中一個值。
值 | 意義 |
---|---|
|
金鑰是 RSA 公鑰。 |
|
金鑰是 RSA 私鑰。 |
|
金鑰是完整的 RSA 私鑰。 |
BitLength
金鑰的大小 (以位元為單位)。
cbPublicExp
索引鍵指數的大小,以位元組為單位。 自 1903 版 Windows 10 起,不再支援大於 (2^64 - 1 個) 的公用指數。
cbModulus
索引鍵模數的大小,以位元組為單位。
cbPrime1
索引鍵第一個質數的大小,以位元組為單位。 這隻適用於私鑰 BLOB。
cbPrime2
索引鍵第二個質數的大小,以位元組為單位。 這隻適用於私鑰 BLOB。
備註
這個結構會當做較大緩衝區的標頭使用。 RSA 公鑰 BLOB (BCRYPT_RSAPUBLIC_BLOB) 在連續記憶體中具有下列格式。 結構後面的所有數位都是以大端格式表示。
BCRYPT_RSAKEY_BLOB
PublicExponent[cbPublicExp] // Big-endian.
Modulus[cbModulus] // Big-endian.
RSA 私鑰 BLOB (BCRYPT_RSAPRIVATE_BLOB) 在連續記憶體中具有下列格式。 結構後面的所有數位都是以大端格式表示。
BCRYPT_RSAKEY_BLOB
PublicExponent[cbPublicExp] // Big-endian.
Modulus[cbModulus] // Big-endian.
Prime1[cbPrime1] // Big-endian.
Prime2[cbPrime2] // Big-endian.
完整的 RSA 私鑰 BLOB (BCRYPT_RSAFULLPRIVATE_BLOB) 具有連續記憶體中的下列格式。 結構後面的所有數位都是以大端格式表示。
請注意,在不同的 Windows 版本中,PrivateExponent 從 BCryptExportKey 呼叫所取的值可能會不同,因為 cbModulus 位元組中有數個以數學方式相等的 PrivateExponent 表示法。 值得注意的是,在某些版本中,PrivateExponent 將會匯出模數 (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 |