Bagikan melalui


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

Lihat juga