struktur BCRYPT_RSAKEY_BLOB (bcrypt.h)
Struktur BCRYPT_RSAKEY_BLOB digunakan sebagai header untuk kunci umum RSA atau BLOBkunci privat dalam memori.
Sintaks
typedef struct _BCRYPT_RSAKEY_BLOB {
ULONG Magic;
ULONG BitLength;
ULONG cbPublicExp;
ULONG cbModulus;
ULONG cbPrime1;
ULONG cbPrime2;
} BCRYPT_RSAKEY_BLOB;
Anggota
Magic
Menentukan jenis kunci RSA yang diwakili BLOB ini. Ini bisa menjadi salah satu nilai berikut.
Nilai | Makna |
---|---|
|
Kuncinya adalah kunci umum RSA. |
|
Kuncinya adalah kunci privat RSA. |
|
Kuncinya adalah kunci privat RSA lengkap. |
BitLength
Ukuran, dalam bit, dari kunci.
cbPublicExp
Ukuran, dalam byte, dari eksponen kunci. Pada Windows 10 versi 1903, eksponen publik yang lebih besar dari (2^64 - 1) tidak lagi didukung.
cbModulus
Ukuran, dalam byte, dari modulus kunci.
cbPrime1
Ukuran, dalam byte, dari nomor prime pertama kunci. Ini hanya digunakan untuk BLOB kunci privat.
cbPrime2
Ukuran, dalam byte, dari nomor prime kedua kunci. Ini hanya digunakan untuk BLOB kunci privat.
Keterangan
Struktur ini digunakan sebagai header untuk buffer yang lebih besar. BLOB kunci umum RSA (BCRYPT_RSAPUBLIC_BLOB) memiliki format berikut dalam memori yang berdampingan. Semua angka yang mengikuti struktur dalam format big-endian.
BCRYPT_RSAKEY_BLOB
PublicExponent[cbPublicExp] // Big-endian.
Modulus[cbModulus] // Big-endian.
BLOB kunci privat RSA (BCRYPT_RSAPRIVATE_BLOB) memiliki format berikut dalam memori yang berdampingan. Semua angka yang mengikuti struktur dalam format big-endian.
BCRYPT_RSAKEY_BLOB
PublicExponent[cbPublicExp] // Big-endian.
Modulus[cbModulus] // Big-endian.
Prime1[cbPrime1] // Big-endian.
Prime2[cbPrime2] // Big-endian.
BLOB kunci privat RSA lengkap (BCRYPT_RSAFULLPRIVATE_BLOB) memiliki format berikut dalam memori yang berdamai. Semua angka yang mengikuti struktur dalam format big-endian.
Perhatikan bahwa dalam versi Windows yang berbeda, nilai yang diambil PrivateExponent dari panggilan BCryptExportKey mungkin berbeda karena ada beberapa representasi yang setara secara matematis dari PrivateExponent dalam byte cbModulus. Terutama, dalam beberapa versi PrivateExponent akan diekspor modulo (Prime1 - 1) * (Prime2 - 1), dan yang lain akan diekspor 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.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows Vista [hanya aplikasi desktop] |
Server minimum yang didukung | Windows Server 2008 [hanya aplikasi desktop] |
Header | bcrypt.h |