Bagikan melalui


Fungsi BCryptImportKey (bcrypt.h)

Fungsi BCryptImportKey mengimpor kunci konten dari kunci BLOB. Fungsi BCryptImportKeyPair digunakan untuk mengimpor pasangan kunci publik/privat .

Sintaksis

NTSTATUS BCryptImportKey(
  [in]            BCRYPT_ALG_HANDLE hAlgorithm,
  [in, optional]  BCRYPT_KEY_HANDLE hImportKey,
  [in]            LPCWSTR           pszBlobType,
  [out]           BCRYPT_KEY_HANDLE *phKey,
  [out, optional] PUCHAR            pbKeyObject,
  [in]            ULONG             cbKeyObject,
  [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, optional] hImportKey

Handel kunci enkripsi kunci yang diperlukan untuk membongkar BLOB kunci dalam parameter pbInput .

Catatan Handel harus disediakan oleh penyedia yang sama yang menyediakan kunci yang sedang diimpor.

 

Windows Server 2008 dan Windows Vista: Parameter ini tidak digunakan dan harus diatur ke 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_AES_WRAP_KEY_BLOB
Impor kunci konten dari BLOB kunci yang dibungkus kunci AES. Parameter hImportKey harus mereferensikan penunjuk BCRYPT_KEY_HANDLE yang valid ke kunci enkripsi kunci.

Windows Server 2008 dan Windows Vista: Tipe BLOB ini tidak didukung.

BCRYPT_KEY_DATA_BLOB
Impor kunci konten dari BLOB data. Parameter pbInput adalah penunjuk ke struktur BCRYPT_KEY_DATA_BLOB_HEADER yang segera diikuti oleh BLOB kunci.
BCRYPT_OPAQUE_KEY_BLOB
Impor BLOB kunci konten dalam format yang khusus untuk satu CSP. BLOB buram tidak dapat ditransfer dan harus diimpor dengan menggunakan CSP yang sama yang menghasilkan BLOB. BLOB buram hanya dimaksudkan untuk digunakan untuk transfer kunci antarproseksi dan tidak cocok untuk dipertahankan dan dibaca di seluruh versi penyedia.

[out] phKey

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

[out, optional] pbKeyObject

Penunjuk ke buffer yang menerima objek kunci yang diimpor. Parameter cbKeyObject berisi ukuran buffer ini. Ukuran buffer ini yang diperlukan dapat diperoleh dengan memanggil fungsi BCryptGetProperty untuk mendapatkan properti BCRYPT_OBJECT_LENGTH. Ini akan memberikan ukuran objek kunci untuk algoritma yang ditentukan.

Memori ini hanya dapat dibebaskan setelah pegangan kunci phKey dihancurkan.

[in] cbKeyObject

Ukurannya, dalam byte, dari pbKeyObject buffer.

[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. Tidak ada bendera yang saat ini ditentukan, jadi parameter ini harus nol.

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_BUFFER_TOO_SMALL
Ukuran objek kunci yang ditentukan oleh parameter cbKeyObject tidak cukup besar untuk menahan objek kunci.
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

Tergantung pada mode prosesor apa yang didukung penyedia, BCryptImportKey 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 BCryptImportKey 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

BCryptImportKeyPair