Fungsi NCryptExportKey (ncrypt.h)
Fungsi NCryptExportKey mengekspor kunci CNG ke BLOB memori.
Sintaks
SECURITY_STATUS NCryptExportKey(
[in] NCRYPT_KEY_HANDLE hKey,
[in, optional] NCRYPT_KEY_HANDLE hExportKey,
[in] LPCWSTR pszBlobType,
[in, optional] NCryptBufferDesc *pParameterList,
[out, optional] PBYTE pbOutput,
[in] DWORD cbOutput,
[out] DWORD *pcbResult,
[in] DWORD dwFlags
);
Parameter
[in] hKey
Handel kunci untuk diekspor.
[in, optional] hExportKey
Handel ke kunci kriptografi pengguna tujuan. Data kunci dalam BLOB kunci yang diekspor dienkripsi dengan menggunakan kunci ini. Ini memastikan bahwa hanya pengguna tujuan yang dapat menggunakan BLOB kunci.
[in] pszBlobType
String Unicode yang dihentikan null yang berisi pengidentifikasi yang menentukan jenis BLOB yang akan diekspor. Ini bisa menjadi salah satu nilai berikut.
BCRYPT_DH_PRIVATE_BLOB
Ekspor pasangan kunci publik/privat Diffie-Hellman. Buffer pbOutput menerima struktur BCRYPT_DH_KEY_BLOB segera diikuti oleh data utama.
BCRYPT_DH_PUBLIC_BLOB
Ekspor kunci umum Diffie-Hellman. Buffer pbOutput menerima struktur BCRYPT_DH_KEY_BLOB segera diikuti oleh data utama.
BCRYPT_DSA_PRIVATE_BLOB
Ekspor pasangan kunci publik/privat DSA. Buffer pbOutput menerima struktur BCRYPT_DSA_KEY_BLOB segera diikuti oleh data utama.
BCRYPT_DSA_PUBLIC_BLOB
Mengekspor kunci publik DSA. Buffer pbOutput menerima struktur BCRYPT_DSA_KEY_BLOB segera diikuti oleh data utama.
BCRYPT_ECCPRIVATE_BLOB
Ekspor kunci privatkriptografi kurva elips (ECC). Buffer pbOutput menerima struktur BCRYPT_ECCKEY_BLOB segera diikuti oleh data utama.
BCRYPT_ECCPUBLIC_BLOB
Mengekspor kunci publik ECC. Buffer pbOutput menerima struktur BCRYPT_ECCKEY_BLOB segera diikuti oleh data utama.
BCRYPT_PUBLIC_KEY_BLOB
Ekspor kunci umum generik dari semua jenis. Jenis kunci dalam BLOB ini ditentukan oleh anggota Sihir dari struktur BCRYPT_KEY_BLOB .
BCRYPT_PRIVATE_KEY_BLOB
Ekspor kunci privat generik dari semua jenis. Kunci privat tidak selalu berisi kunci umum. Jenis kunci dalam BLOB ini ditentukan oleh anggota Sihir dari struktur BCRYPT_KEY_BLOB .
BCRYPT_RSAFULLPRIVATE_BLOB
Ekspor pasangan kunci publik/privat RSA lengkap. Buffer pbOutput menerima struktur BCRYPT_RSAKEY_BLOB segera diikuti oleh data utama. BLOB ini akan mencakup materi kunci tambahan dibandingkan dengan jenis BCRYPT_RSAPRIVATE_BLOB .
BCRYPT_RSAPRIVATE_BLOB
Ekspor pasangan kunci publik/privat RSA. Buffer pbOutput menerima struktur BCRYPT_RSAKEY_BLOB segera diikuti oleh data utama.
BCRYPT_RSAPUBLIC_BLOB
Mengekspor kunci publik RSA. Buffer pbOutput menerima struktur BCRYPT_RSAKEY_BLOB segera diikuti oleh data utama.
LEGACY_DH_PRIVATE_BLOB
Ekspor BLOB Kunci Privat Diffie-Hellman Versi 3 warisan yang berisi pasangan kunci publik/privat Diffie-Hellman yang dapat diimpor dengan menggunakan CryptoAPI.
LEGACY_DH_PUBLIC_BLOB
Ekspor BLOB Kunci Privat Diffie-Hellman Versi 3 warisan yang berisi kunci umum Diffie-Hellman yang dapat diimpor dengan menggunakan CryptoAPI.
LEGACY_DSA_PRIVATE_BLOB
Ekspor pasangan kunci publik/privat DSA dalam formulir yang dapat diimpor dengan menggunakan CryptoAPI.
LEGACY_DSA_PUBLIC_BLOB
Ekspor kunci publik DSA dalam formulir yang dapat diimpor dengan menggunakan CryptoAPI.
LEGACY_RSAPRIVATE_BLOB
Ekspor pasangan kunci publik/privat RSA dalam formulir yang dapat diimpor dengan menggunakan CryptoAPI.
LEGACY_RSAPUBLIC_BLOB
Ekspor kunci publik RSA dalam formulir yang dapat diimpor dengan menggunakan CryptoAPI.
NCRYPT_CIPHER_KEY_BLOB
Ekspor kunci sandi dalam struktur NCRYPT_KEY_BLOB_HEADER .
Windows 8 dan Windows Server 2012: Dukungan untuk nilai ini dimulai.
NCRYPT_OPAQUETRANSPORT_BLOB
Ekspor kunci dalam format yang khusus untuk satu CSP dan cocok untuk transportasi. Blob buram tidak dapat ditransfer dan harus diimpor dengan menggunakan CSP yang sama yang menghasilkan BLOB.
NCRYPT_PKCS7_ENVELOPE_BLOB
Ekspor BLOB amplop PKCS #7. Parameter yang diidentifikasi oleh parameter pParameterList dapat atau harus berisi parameter berikut, seperti yang ditunjukkan oleh kolom Wajib atau opsional.
Parameter | Diperlukan atau opsional |
---|---|
NCRYPTBUFFER_CERT_BLOB | Diperlukan |
NCRYPTBUFFER_PKCS_ALG_OID | Diperlukan |
NCRYPTBUFFER_PKCS_ALG_PARAM | Opsional |
NCRYPT_PKCS8_PRIVATE_KEY_BLOB
Ekspor BLOB kunci privat PKCS #8. Parameter yang diidentifikasi oleh parameter pParameterList dapat atau harus berisi parameter berikut, seperti yang ditunjukkan oleh kolom Wajib atau opsional.
Parameter | Diperlukan atau opsional |
---|---|
NCRYPTBUFFER_PKCS_ALG_OID | Opsional |
NCRYPTBUFFER_PKCS_ALG_PARAM | Opsional |
NCRYPTBUFFER_PKCS_SECRET | Opsional |
NCRYPT_PROTECTED_KEY_BLOB
Ekspor kunci yang dilindungi dalam struktur NCRYPT_KEY_BLOB_HEADER .
Windows 8 dan Windows Server 2012: Dukungan untuk nilai ini dimulai.
[in, optional] pParameterList
Alamat struktur NCryptBufferDesc yang menerima informasi parameter untuk kunci. Parameter ini bisa NULL jika informasi ini tidak diperlukan.
[out, optional] pbOutput
Alamat buffer yang menerima BLOB kunci. Parameter cbOutput berisi ukuran buffer ini. Jika parameter ini NULL, fungsi ini akan menempatkan ukuran yang diperlukan, dalam byte, dalam DWORD yang ditunjukkan oleh parameter pcbResult .
[in] cbOutput
Ukuran, dalam byte, dari buffer pbOutput .
[out] pcbResult
Alamat variabel DWORD yang menerima jumlah byte yang disalin ke buffer pbOutput . Jika parameter pbOutput adalah NULL, fungsi ini akan menempatkan ukuran yang diperlukan, dalam byte, dalam DWORD yang ditunjukkan oleh parameter ini.
[in] dwFlags
Bendera yang mengubah perilaku fungsi. Ini bisa menjadi nol atau kombinasi dari satu atau beberapa nilai berikut. Kumpulan bendera yang valid khusus untuk setiap penyedia penyimpanan kunci. Bendera berikut berlaku untuk semua penyedia.
Nilai | Makna |
---|---|
NCRYPT_SILENT_FLAG | Meminta agar penyedia layanan utama (KSP) tidak menampilkan antarmuka pengguna apa pun. Jika penyedia harus menampilkan UI untuk beroperasi, panggilan gagal dan KSP harus mengatur kode kesalahan NTE_SILENT_CONTEXT sebagai kesalahan terakhir. |
Mengembalikan nilai
Mengembalikan kode status yang menunjukkan keberhasilan atau kegagalan fungsi.
Kemungkinan kode pengembalian termasuk, tetapi tidak terbatas pada, berikut ini.
Menampilkan kode | Deskripsi |
---|---|
ERROR_SUCCESS | Fungsi berhasil. |
NTE_BAD_FLAGS | Parameter dwFlags berisi nilai yang tidak valid. |
NTE_BAD_KEY_STATE | Kunci yang ditentukan oleh parameter hKey tidak valid. Penyebab paling umum dari kesalahan ini adalah bahwa kunci tidak diselesaikan dengan menggunakan fungsi NCryptFinalizeKey . |
NTE_BAD_TYPE | Kunci yang ditentukan oleh parameter hKey tidak dapat diekspor ke dalam jenis BLOB yang ditentukan oleh parameter pszBlobType . |
NTE_INVALID_HANDLE | Parameter hKey atau hExportKey tidak valid. |
NTE_INVALID_PARAMETER | Satu atau beberapa parameter tidak valid. |
Keterangan
Layanan tidak boleh memanggil fungsi ini dari Fungsi StartService-nya. Jika layanan memanggil fungsi ini dari fungsi StartService-nya , kebuntuan dapat terjadi, dan layanan mungkin berhenti merespons.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows Vista [aplikasi desktop | Aplikasi UWP] |
Server minimum yang didukung | Windows Server 2008 [aplikasi desktop | Aplikasi UWP] |
Target Platform | Windows |
Header | ncrypt.h |
Pustaka | Ncrypt.lib |
DLL | Ncrypt.dll |