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
キーの 2 番目の素数のサイズ (バイト単位)。 これは、秘密キー 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 [デスクトップ アプリのみ] |
Header | bcrypt.h |