Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Fungsi NCryptExportKey mengekspor kunci CNG ke BLOB memori.
Sintaksis
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-parameternya
[in] hKey
Handel kunci yang akan 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 kunci.
BCRYPT_ECCPUBLIC_BLOB
Mengekspor kunci publik ECC. Buffer pbOutput menerima struktur BCRYPT_ECCKEY_BLOB segera diikuti oleh data kunci.
BCRYPT_MLKEM_PRIVATE_SEED_BLOB
Ekspor kunci seed privat ML-KEM. Buffer pbOutput menerima struktur BCRYPT_MLKEM_KEY_BLOB segera diikuti oleh kumpulan parameter dan data kunci.
Catatan: ML-KEM handel kunci yang berisi kunci privat yang diimpor menggunakan BCRYPT_MLKEM_PRIVATE_BLOB memiliki informasi yang tidak mencukupi untuk mengekspor kunci benih privat.
Windows Insider (build 27843): Dukungan untuk ML-KEM dimulai.
BCRYPT_MLKEM_PRIVATE_BLOB
Ekspor kunci privat (dekapsulasi) ML-KEM. Buffer pbOutput menerima struktur BCRYPT_MLKEM_KEY_BLOB segera diikuti oleh kumpulan parameter dan data kunci.
Windows Insider (build 27843): Dukungan untuk ML-KEM dimulai.
BCRYPT_MLKEM_PUBLIC_BLOB
Ekspor kunci publik (enkapsulasi) ML-KEM. Buffer pbOutput menerima struktur BCRYPT_MLKEM_KEY_BLOB segera diikuti oleh kumpulan parameter dan data kunci.
Windows Insider (build 27843): Dukungan untuk ML-KEM dimulai.
BCRYPT_PQDSA_PRIVATE_SEED_BLOB
Ekspor kunci seed privat PQDSA. Buffer pbOutput menerima struktur BCRYPT_PQDSA_KEY_BLOB segera diikuti oleh kumpulan parameter dan data kunci.
Nota: Handel kunci PQDSA yang berisi kunci privat yang diimpor menggunakan BCRYPT_PQDSA_PRIVATE_BLOB memiliki informasi yang tidak mencukupi untuk mengekspor kunci benih privat.
Windows Insider (build 27843): Dukungan untuk ML-DSA dimulai.
BCRYPT_PQDSA_PRIVATE_BLOB
Ekspor kunci privat PQDSA. Buffer pbOutput menerima struktur BCRYPT_PQDSA_KEY_BLOB segera diikuti oleh kumpulan parameter dan data kunci.
Windows Insider (build 27843): Dukungan untuk ML-DSA dimulai.
BCRYPT_PQDSA_PUBLIC_BLOB
Mengekspor kunci publik PQDSA. Buffer pbOutput menerima struktur BCRYPT_PQDSA_KEY_BLOB segera diikuti oleh kumpulan parameter dan data kunci.
Windows Insider (build 27843): Dukungan untuk ML-DSA dimulai.
BCRYPT_PUBLIC_KEY_BLOB
Ekspor kunci umum generik dari jenis apa pun. Jenis kunci dalam BLOB ini ditentukan oleh anggota Magic dari struktur BCRYPT_KEY_BLOB .
BCRYPT_PRIVATE_KEY_BLOB
Ekspor kunci privat generik dari jenis apa pun. Kunci privat tidak selalu berisi kunci publik. Jenis kunci dalam BLOB ini ditentukan oleh anggota Magic 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 kunci. 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 kunci.
BCRYPT_RSAPUBLIC_BLOB
Ekspor kunci publik RSA. Buffer pbOutput menerima struktur BCRYPT_RSAKEY_BLOB segera diikuti oleh data kunci.
LEGACY_DH_PRIVATE_BLOB
Ekspor blob Kunci PrivatDiffie-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 PrivatDiffie-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 cipher 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.
| Pengaturan | Diperlukan atau opsional |
|---|---|
| NCRYPTBUFFER_CERT_BLOB | Diperlukan |
| NCRYPTBUFFER_PKCS_ALG_OID | Diperlukan |
| NCRYPTBUFFER_PKCS_ALG_PARAM | Fakultatif |
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.
| Pengaturan | Diperlukan atau opsional |
|---|---|
| NCRYPTBUFFER_PKCS_ALG_OID | Fakultatif |
| NCRYPTBUFFER_PKCS_ALG_PARAM | Fakultatif |
| NCRYPTBUFFER_PKCS_SECRET | Fakultatif |
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.
NCRYPT_PQ_PRIVATE_KEY_BLOB
Ekspor kunci privat generik dari semua jenis algoritma Post-Quantum. Jenis kunci dalam BLOB ini ditentukan oleh anggota Magic dari struktur NCRYPT_PQ_BLOB .
[in, optional] pParameterList
Alamat struktur NCryptBufferDesc yang menerima informasi parameter untuk kunci. Parameter ini dapat berupa 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, di DWORD yang ditunjukkan oleh parameter pcbResult .
[in] cbOutput
Ukurannya, dalam byte, dari buffer pbOutput .
[out] pcbResult
Alamat variabel DWORD yang menerima jumlah byte yang disalin ke buffer pbOutput . Jika parameter pbOutputadalah 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 nol atau kombinasi dari satu atau beberapa nilai berikut. Kumpulan bendera yang valid khusus untuk setiap penyedia penyimpanan utama. Bendera berikut berlaku untuk semua penyedia.
| Nilai | Makna |
|---|---|
| NCRYPT_SILENT_FLAG | Meminta agar penyedia penyimpanan kunci (KSP) tidak menampilkan antarmuka pengguna apa pun. Jika penyedia harus menampilkan UI untuk dioperasikan, 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.
| Mengembalikan kode | Deskripsi |
|---|---|
| KESALAHAN_SUKSES | 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. |
Komentar
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] |
| Platform Target | Windows |
| Header | ncrypt.h |
| Perpustakaan | Ncrypt.lib |
| DLL | Ncrypt.dll |