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 金鑰類型。 這可以是下列其中一個值。

意義
BCRYPT_RSAPUBLIC_MAGIC
金鑰是 RSA 公鑰。
BCRYPT_RSAPRIVATE_MAGIC
金鑰是 RSA 私鑰。
BCRYPT_RSAFULLPRIVATE_MAGIC
金鑰是完整的 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

另請參閱

BCRYPT_KEY_BLOB

BCryptExportKey

BCryptImportKey