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
BCRYPT_RSAPUBLIC_MAGIC
Kuncinya adalah kunci umum RSA.
BCRYPT_RSAPRIVATE_MAGIC
Kuncinya adalah kunci privat RSA.
BCRYPT_RSAFULLPRIVATE_MAGIC
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

Lihat juga

BCRYPT_KEY_BLOB

BCryptExportKey

BCryptImportKey