struktur CRYPT_KEY_PROV_INFO (wincrypt.h)

Struktur CRYPT_KEY_PROV_INFO berisi informasi tentang kontainer kunci dalam penyedia layanan kriptografi (CSP).

Sintaks

typedef struct _CRYPT_KEY_PROV_INFO {
  LPWSTR                pwszContainerName;
  LPWSTR                pwszProvName;
  DWORD                 dwProvType;
  DWORD                 dwFlags;
  DWORD                 cProvParam;
  PCRYPT_KEY_PROV_PARAM rgProvParam;
  DWORD                 dwKeySpec;
} CRYPT_KEY_PROV_INFO, *PCRYPT_KEY_PROV_INFO;

Anggota

pwszContainerName

Penunjuk ke string Unicode yang dihentikan null yang berisi nama kontainer kunci.

Ketika anggota dwProvType nol, string ini berisi nama kunci dalam penyedia penyimpanan kunci CNG. String ini diteruskan sebagai parameter pwszKeyName ke fungsi NCryptOpenKey .

pwszProvName

Penunjuk ke string Unicode yang dihentikan null yang berisi nama CSP.

Ketika anggota dwProvType nol, string ini berisi nama penyedia penyimpanan kunci CNG. String ini diteruskan sebagai parameter pwszProviderName ke fungsi NCryptOpenStorageProvider .

dwProvType

Menentukan jenis CSP. Ini bisa nol atau salah satu Jenis Penyedia Kriptografi.

Jika anggota ini nol, kontainer kunci adalah salah satu penyedia penyimpanan kunci CNG.

dwFlags

Sekumpulan bendera yang menunjukkan informasi tambahan tentang penyedia. Ini bisa nol atau salah satu nilai berikut.

Nilai Makna
CERT_SET_KEY_PROV_HANDLE_PROP_ID/CERT_SET_KEY_CONTEXT_PROP_ID
Memungkinkan handel ke penyedia kunci tetap terbuka untuk panggilan berikutnya ke fungsi kriptografi.
CRYPT_MACHINE_KEYSET /NCRYPT_MACHINE_KEY_FLAG
Kontainer kunci berisi kunci komputer. Jika bendera ini tidak ada, kontainer kunci berisi kunci pengguna.
CRYPT_SILENT /NCRYPT_SILENT_FLAG
Kontainer kunci akan mencoba membuka kunci apa pun secara diam-diam tanpa permintaan antarmuka pengguna.
 

Fungsi kriptografi CryptDecryptMessage, CryptSignMessage, CryptDecryptAndVerifyMessageSignature, dan CryptSignAndEncryptMessage secara internal melakukan operasi CryptAcquireContext menggunakan CRYPT_KEY_PROV_INFO dari sertifikat. Ketika bendera CERT_SET_KEY_CONTEXT_PROP_ID atau CERT_SET_KEY_PROV_HANDLE_PROP_ID diatur, fungsi kriptografi ini kemudian dapat memanggil CertSetCertificateContextProperty dengan CERT_KEY_CONTEXT_PROP_ID. Panggilan ini memungkinkan pegangan ke penyedia kunci untuk tetap terbuka untuk panggilan berikutnya ke fungsi kriptografi yang disebutkan yang menggunakan sertifikat yang sama, yang menghilangkan kebutuhan untuk melakukan panggilan tambahan ke CryptAcquireContext, meningkatkan efisiensi. Selain itu, karena beberapa penyedia dapat mengharuskan kata sandi dimasukkan untuk panggilan ke CryptAcquireContext, diinginkan bagi aplikasi untuk meminimalkan jumlah panggilan CryptAcquireContext yang dilakukan. Handel ke penyedia kunci yang tetap terbuka secara otomatis dirilis ketika penyimpanan ditutup.

Misalnya, pertimbangkan aplikasi email di mana lima pesan terenkripsi telah diterima, semuanya dienkripsi dengan kunci umum dari sertifikat yang sama. Jika handel ke penyedia kunci tetap terbuka setelah pesan pertama diproses, panggilan ke CryptAcquireContext tidak diperlukan untuk empat pesan yang tersisa.

cProvParam

Jumlah elemen dalam array rgProvParam .

Ketika anggota dwProvType nol, anggota ini tidak digunakan dan harus nol.

rgProvParam

Array struktur CRYPT_KEY_PROV_PARAM yang berisi parameter untuk kontainer kunci. Anggota cProvParam berisi jumlah elemen dalam array ini.

Ketika anggota dwProvType nol, anggota ini tidak digunakan dan harus NULL.

dwKeySpec

Spesifikasi kunci privat yang akan diambil.

Nilai berikut didefinisikan untuk penyedia default.

Ketika anggota dwProvType nol, nilai ini diteruskan sebagai parameter dwLegacyKeySpec ke fungsi NCryptOpenKey .

Nilai Makna
AT_KEYEXCHANGE
Kunci yang digunakan untuk mengenkripsi/mendekripsi kunci sesi.
AT_SIGNATURE
Kunci yang digunakan untuk membuat dan memverifikasi tanda tangan digital.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows XP [hanya aplikasi desktop]
Server minimum yang didukung Windows Server 2003 [hanya aplikasi desktop]
Header wincrypt.h

Lihat juga

CRYPT_KEY_PROV_PARAM

CertGetCertificateContextProperty

CertSetCertificateContextProperty