Bagikan melalui


Fungsi NCryptOpenKey (ncrypt.h)

Fungsi NCryptOpenKey membuka kunci yang ada di penyedia penyimpanan kunci CNG yang ditentukan.

Sintaks

SECURITY_STATUS NCryptOpenKey(
  [in]  NCRYPT_PROV_HANDLE hProvider,
  [out] NCRYPT_KEY_HANDLE  *phKey,
  [in]  LPCWSTR            pszKeyName,
  [in]  DWORD              dwLegacyKeySpec,
  [in]  DWORD              dwFlags
);

Parameter

[in] hProvider

Handel penyedia penyimpanan kunci untuk membuka kunci.

[out] phKey

Penunjuk ke variabel NCRYPT_KEY_HANDLE yang menerima handel kunci. Setelah Anda selesai menggunakan handel ini, lepaskan dengan meneruskannya ke fungsi NCryptFreeObject .

[in] pszKeyName

Penunjuk ke string Unicode yang dihentikan null yang berisi nama kunci yang akan diambil.

[in] dwLegacyKeySpec

Pengidentifikasi warisan yang menentukan jenis kunci. Ini bisa menjadi salah satu nilai berikut.

Nilai Makna
AT_KEYEXCHANGE
Kuncinya adalah kunci pertukaran kunci.
AT_SIGNATURE
Kuncinya adalah kunci tanda tangan.
0
Kuncinya bukan jenis di atas.

[in] dwFlags

Bendera yang mengubah perilaku fungsi. Ini bisa menjadi nol atau kombinasi dari satu atau beberapa nilai berikut.

Nilai Makna
NCRYPT_MACHINE_KEY_FLAG
Buka kunci untuk komputer lokal. Jika bendera ini tidak ada, kunci pengguna saat ini akan dibuka.
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_KEYSET
Kunci yang ditentukan tidak ditemukan.
NTE_INVALID_HANDLE
Parameter hProvider tidak valid.
NTE_INVALID_PARAMETER
Satu atau beberapa parameter tidak valid.
NTE_NO_MEMORY
Terjadi kegagalan alokasi memori.

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.

Untuk alasan performa, materi kunci privat cache KSP berbasis perangkat lunak Microsoft di Otoritas Keamanan Lokal (LSA) selama handel ke kunci terbuka. LSA adalah proses sistem istimewa. Oleh karena itu, pengguna lain tidak dapat mengakses salinan kunci yang di-cache ini kecuali pengguna memiliki hak istimewa administrator pada sistem. Perilaku ini tidak dapat diubah melalui konfigurasi.

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