Bagikan melalui


Fungsi NCryptExportKey (ncrypt.h)

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

Lihat juga