Bagikan melalui


Fungsi BCryptImportKeyPair (bcrypt.h)

Fungsi BCryptImportKeyPair mengimpor pasangan kunci publik/privat dariBLOB kunci . Fungsi BCryptImportKey digunakan untuk mengimpor pasangan kunci simetris .

Sintaksis

NTSTATUS BCryptImportKeyPair(
  [in]      BCRYPT_ALG_HANDLE hAlgorithm,
  [in, out] BCRYPT_KEY_HANDLE hImportKey,
  [in]      LPCWSTR           pszBlobType,
  [out]     BCRYPT_KEY_HANDLE *phKey,
  [in]      PUCHAR            pbInput,
  [in]      ULONG             cbInput,
  [in]      ULONG             dwFlags
);

Parameter

[in] hAlgorithm

Handel penyedia algoritma untuk mengimpor kunci. Handel ini diperoleh dengan memanggil fungsi BCryptOpenAlgorithmProvider.

[in, out] hImportKey

Parameter ini saat ini tidak digunakan dan harus NULL.

[in] pszBlobType

String Unicode null-terminated yang berisi pengidentifikasi yang menentukan jenis BLOB yang terkandung dalam pbInput buffer. Ini bisa menjadi salah satu nilai berikut.

Nilai Arti
BCRYPT_DH_PRIVATE_BLOB
BLOB adalah blob pasangan kunci publik/privat Diffie-Hellman. Buffer pbInput harus berisi struktur BCRYPT_DH_KEY_BLOB yang segera diikuti oleh data utama.
BCRYPT_DH_PUBLIC_BLOB
BLOB adalahBLOB kunci publik Diffie-Hellman . Buffer pbInput harus berisi struktur BCRYPT_DH_KEY_BLOB yang segera diikuti oleh data utama.
BCRYPT_DSA_PRIVATE_BLOB
BLOB adalah BLOB pasangan kunci publik/privat DSA. Buffer pbInput harus berisi struktur BCRYPT_DSA_KEY_BLOB atau BCRYPT_DSA_KEY_BLOB_V2 segera diikuti oleh data utama. BCRYPT_DSA_KEY_BLOB digunakan untuk panjang kunci dari 512 hingga 1024 bit. BCRYPT_DSA_KEY_BLOB_V2 digunakan untuk panjang kunci yang melebihi 1024 bit tetapi kurang dari atau sama dengan 3072 bit.

Windows 8: Dukungan untuk BCRYPT_DSA_KEY_BLOB_V2 dimulai.

BCRYPT_DSA_PUBLIC_BLOB
BLOB adalah BLOB kunci umum DSA. Buffer pbInput harus berisi struktur BCRYPT_DSA_KEY_BLOB atau BCRYPT_DSA_KEY_BLOB_V2 segera diikuti oleh data utama. BCRYPT_DSA_KEY_BLOB digunakan untuk panjang kunci dari 512 hingga 1024 bit. BCRYPT_DSA_KEY_BLOB_V2 digunakan untuk panjang kunci yang melebihi 1024 bit tetapi kurang dari atau sama dengan 3072 bit.

Windows 8: Dukungan untuk BCRYPT_DSA_KEY_BLOB_V2 dimulai.

BCRYPT_ECCPRIVATE_BLOB
BLOB adalah kriptografi kurva elips (ECC) kunci privat. Buffer pbInput harus berisi struktur BCRYPT_ECCKEY_BLOB yang segera diikuti oleh data utama.
BCRYPT_ECCPUBLIC_BLOB
BLOB adalah kunci umum ECC. Buffer pbInput harus berisi struktur BCRYPT_ECCKEY_BLOB yang segera diikuti oleh data utama.
BCRYPT_PUBLIC_KEY_BLOB
BLOB adalah kunci umum umum dari semua jenis. Jenis kunci dalam BLOB ini ditentukan oleh Magic anggota struktur BCRYPT_KEY_BLOB.
BCRYPT_PRIVATE_KEY_BLOB
BLOB adalah kunci privat generik dari semua jenis. Kunci privat tidak selalu berisi kunci publik. Jenis kunci dalam BLOB ini ditentukan oleh Magic anggota struktur BCRYPT_KEY_BLOB.
BCRYPT_RSAPRIVATE_BLOB
BLOB adalah BLOB pasangan kunci publik/privat RSA. Buffer pbInput harus berisi struktur BCRYPT_RSAKEY_BLOB yang segera diikuti oleh data utama.
BCRYPT_RSAPUBLIC_BLOB
BLOB adalah BLOB kunci umum RSA. Buffer pbInput harus berisi struktur BCRYPT_RSAKEY_BLOB yang segera diikuti oleh data utama.
LEGACY_DH_PUBLIC_BLOB
BLOB adalah BLOB kunci umum Diffie-Hellman yang diekspor dengan menggunakan CryptoAPI. Penyedia primitif Microsoft tidak mendukung impor jenis BLOB ini.
LEGACY_DH_PRIVATE_BLOB
BLOB adalah BLOB Kunci Privat Diffie-Hellman Versi 3 yang berisi pasangan kunci publik/privat Diffie-Hellman yang diekspor dengan menggunakan CryptoAPI.
LEGACY_DSA_PRIVATE_BLOB
BLOB adalah BLOB pasangan kunci publik/privat DSA yang diekspor dengan menggunakan CryptoAPI.
LEGACY_DSA_PUBLIC_BLOB
BLOB adalah BLOB kunci umum DSA yang diekspor dengan menggunakan CryptoAPI. Penyedia primitif Microsoft tidak mendukung impor jenis BLOB ini.
LEGACY_DSA_V2_PRIVATE_BLOB
BLOB adalah kunci privat DSA versi 2 dalam bentuk yang dapat diimpor dengan menggunakan CryptoAPI.
LEGACY_RSAPRIVATE_BLOB
BLOB adalah BLOB pasangan kunci publik/privat RSA yang diekspor dengan menggunakan CryptoAPI.
LEGACY_RSAPUBLIC_BLOB
BLOB adalah BLOB kunci umum RSA yang diekspor dengan menggunakan CryptoAPI. Penyedia primitif Microsoft tidak mendukung impor jenis BLOB ini.

[out] phKey

Penunjuk ke BCRYPT_KEY_HANDLE yang menerima handel kunci yang diimpor. Handel ini digunakan dalam fungsi berikutnya yang memerlukan kunci, seperti BCryptSignHash. Handel ini harus dirilis ketika tidak lagi diperlukan dengan meneruskannya ke fungsi BCryptDestroyKey .

[in] pbInput

Alamat buffer yang berisi BLOB kunci untuk diimpor. Parameter cbInput berisi ukuran buffer ini. Parameter pszBlobType menentukan jenis BLOB kunci yang dikandung buffer ini.

[in] cbInput

Ukurannya, dalam byte, dari pbInput buffer.

[in] dwFlags

Sekumpulan bendera yang mengubah perilaku fungsi ini. Ini bisa nol atau nilai berikut.

Nilai Arti
BCRYPT_NO_KEY_VALIDATION
Jangan validasi bagian publik dari pasangan kunci.

Mengembalikan nilai

Mengembalikan kode status yang menunjukkan keberhasilan atau kegagalan fungsi.

Kemungkinan kode pengembalian termasuk, tetapi tidak terbatas pada, berikut ini.

Mengembalikan kode Deskripsi
STATUS_SUCCESS
Fungsi berhasil.
STATUS_INVALID_HANDLE
Handel algoritma dalam parameter hAlgoritma tidak valid.
STATUS_INVALID_PARAMETER
Satu atau beberapa parameter tidak valid.
STATUS_NOT_SUPPORTED
Penyedia algoritma yang ditentukan oleh parameter hAlgorithm tidak mendukung jenis BLOB yang ditentukan oleh parameter pszBlobType.

Komentar

Bergantung pada mode prosesor apa yang didukung penyedia, BCryptImportKeyPair dapat dipanggil baik dari mode pengguna atau mode kernel. Pemanggil mode kernel dapat menjalankan baik di PASSIVE_LEVELIRQL atau IRQL DISPATCH_LEVEL. Jika tingkat IRQL saat ini DISPATCH_LEVEL, handel yang disediakan dalam parameter hAlgoritma harus dibuka dengan menggunakan bendera BCRYPT_PROV_DISPATCH, dan penunjuk apa pun yang diteruskan ke fungsi BCryptImportKeyPair harus mengacu pada memori yang tidak dipagasi (atau dikunci).

Untuk memanggil fungsi ini dalam mode kernel, gunakan Cng.lib, yang merupakan bagian dari Driver Development Kit (DDK). Windows Server 2008 dan Windows Vista: Untuk memanggil fungsi ini dalam mode kernel, gunakan Ksecdd.lib.

Persyaratan

Syarat Nilai
klien minimum yang didukung Windows Vista [aplikasi desktop | Aplikasi UWP]
server minimum yang didukung Windows Server 2008 [aplikasi desktop | Aplikasi UWP]
Platform Target Windows
Header bcrypt.h
Pustaka Bcrypt.lib
DLL Bcrypt.dll

Lihat juga

BCryptDestroyKey

BCryptExportKey

BCryptImportKey