Fungsi CryptSetProvParam (wincrypt.h)

Penting API ini tidak digunakan lagi. Perangkat lunak baru dan yang sudah ada harus mulai menggunakan Cryptography Next Generation API. Microsoft dapat menghapus API ini dalam rilis mendatang.
 
Fungsi CryptSetProvParam menyesuaikan operasi penyedia layanan kriptografi (CSP). Fungsi ini umumnya digunakan untuk mengatur deskriptor keamanan pada kontainer kunci yang terkait dengan CSP untuk mengontrol akses ke kunci privat dalam kontainer kunci tersebut.

Sintaks

BOOL CryptSetProvParam(
  [in] HCRYPTPROV hProv,
  [in] DWORD      dwParam,
  [in] const BYTE *pbData,
  [in] DWORD      dwFlags
);

Parameter

[in] hProv

Handel CSP untuk mengatur nilai. Handel ini harus sudah dibuat dengan menggunakan fungsi CryptAcquireContext .

[in] dwParam

Menentukan parameter yang akan diatur. Ini bisa menjadi salah satu nilai berikut.

Nilai Makna
PP_CLIENT_HWND
1 (0x1)
Atur handel jendela yang digunakan penyedia sebagai induk dari kotak dialog apa pun yang dibuatnya. pbData berisi penunjuk ke HWND yang berisi handel jendela induk.

Parameter ini harus diatur sebelum memanggil CryptAcquireContext karena banyak CSP akan menampilkan antarmuka pengguna saat CryptAcquireContext dipanggil. Anda dapat meneruskan NULL untuk parameter hProv untuk mengatur handel jendela ini untuk semua konteks kriptografi yang kemudian diperoleh dalam proses ini.

PP_DELETEKEY
24 (0x18)
Hapus kunci sementara yang terkait dengan konteks hash, enkripsi, atau verifikasi. Ini akan membebaskan memori dan menghapus pengaturan registri yang terkait dengan kunci.
PP_KEYEXCHANGE_ALG
Konstanta ini tidak digunakan.
PP_KEYEXCHANGE_PIN
32 (0x20)
Menentukan bahwa PIN pertukaran kunci terkandung dalam pbData. PIN direpresentasikan sebagai string ASCII yang dihentikan null.
PP_KEYEXCHANGE_KEYSIZE
Konstanta ini tidak digunakan.
PP_KEYSET_SEC_DESCR
8 (0x8)
Mengatur deskriptor keamanan pada kontainer penyimpanan kunci. Parameter pbData adalah alamat struktur SECURITY_DESCRIPTOR yang berisi deskriptor keamanan baru untuk kontainer penyimpanan kunci.
PP_PIN_PROMPT_STRING
44 (0x2C)
Mengatur string perintah alternatif untuk ditampilkan kepada pengguna saat PIN pengguna diminta. Parameter pbData adalah penunjuk ke string Unicode yang dihentikan null.
PP_ROOT_CERTSTORE
46 (0x2E)
Mengatur penyimpanan sertifikat akar untuk kartu pintar. Penyedia akan menyalin sertifikat akar dari penyimpanan ini ke kartu pintar.

Parameter pbData adalah variabel HCERTSTORE yang berisi handel penyimpanan sertifikat baru. Penyedia akan menyalin sertifikat dari penyimpanan selama panggilan ini, sehingga aman untuk menutup penyimpanan ini setelah fungsi ini dipanggil.

Windows XP dan Windows Server 2003: Parameter ini tidak didukung.

PP_SIGNATURE_ALG
Konstanta ini tidak digunakan.
PP_SIGNATURE_PIN
33 (0x21)
Menentukan PIN tanda tangan. Parameter pbData adalah string ASCII null-terminated yang mewakili PIN.
PP_SIGNATURE_KEYSIZE
Konstanta ini tidak digunakan.
PP_UI_PROMPT
21 (0x15)
Untuk penyedia kartu pintar, mengatur string pencarian yang ditampilkan kepada pengguna sebagai perintah untuk menyisipkan kartu pintar. String ini diteruskan sebagai anggota lpstrSearchDesc dari struktur OPENCARDNAME_EX yang diteruskan ke fungsi SCardUIDlgSelectCard . String ini digunakan untuk masa pakai proses panggilan.

Parameter pbData adalah penunjuk ke string Unicode yang dihentikan null.

PP_USE_HARDWARE_RNG
38 (0x26)
Menentukan bahwa CSP harus secara eksklusif menggunakan generator nomor acak perangkat keras (RNG). Ketika PP_USE_HARDWARE_RNG diatur, nilai acak diambil secara eksklusif dari RNG perangkat keras dan tidak ada sumber lain yang digunakan. Jika RNG perangkat keras didukung oleh CSP dan dapat digunakan secara eksklusif, fungsi berhasil dan mengembalikan TRUE; jika tidak, fungsi gagal dan mengembalikan FALSE. Parameter pbData harus NULL dan dwFlags harus nol saat menggunakan nilai ini.

Tidak ada CSP Microsoft yang saat ini mendukung penggunaan RNG perangkat keras.

PP_USER_CERTSTORE
42 (0x2A)
Menentukan penyimpanan sertifikat pengguna untuk kartu pintar. Penyimpanan sertifikat ini berisi semua sertifikat pengguna yang disimpan pada kartu pintar. Sertifikat di penyimpanan ini dikodekan dengan menggunakan pengodean PKCS_7_ASN_ENCODING atau X509_ASN_ENCODING dan harus berisi properti CERT_KEY_PROV_INFO_PROP_ID .

Parameter pbData adalah variabel HCERTSTORE yang menerima handel penyimpanan sertifikat dalam memori. Ketika handel ini tidak lagi diperlukan, pemanggil harus menutupnya dengan menggunakan fungsi CertCloseStore .

Windows Server 2003 dan Windows XP: Parameter ini tidak didukung.

PP_SECURE_KEYEXCHANGE_PIN
47 (0x2F)
Menentukan bahwa PIN pertukaran kunci terenkripsi terkandung dalam pbData. Parameter pbData berisi DATA_BLOB.
PP_SECURE_SIGNATURE_PIN
48 (0x30)
Menentukan bahwa PIN tanda tangan terenkripsi terkandung dalam pbData. Parameter pbData berisi DATA_BLOB.
PP_SMARTCARD_READER
43 (0x2B)
Menentukan nama pembaca kartu pintar. Parameter pbData adalah alamat array karakter ANSI yang berisi string ANSI yang dihentikan null yang berisi nama pembaca kartu pintar.

Windows Server 2003 dan Windows XP: Parameter ini tidak didukung.

PP_SMARTCARD_GUID
45 (0x2D)
Menentukan pengidentifikasi kartu pintar. Parameter pbData adalah alamat struktur GUID yang berisi pengidentifikasi kartu pintar.

Windows Server 2003 dan Windows XP: Parameter ini tidak didukung.

[in] pbData

Penunjuk ke buffer data yang berisi nilai yang akan ditetapkan sebagai parameter penyedia. Bentuk data ini bervariasi tergantung pada nilai dwParam . Jika dwParam berisi PP_USE_HARDWARE_RNG, parameter ini harus NULL.

[in] dwFlags

Jika dwParam berisi PP_KEYSET_SEC_DESCR, dwFlags berisi bendera bit yang SECURITY_INFORMATION berlaku, seperti yang didefinisikan dalam Platform SDK. Keamanan kontainer kunci ditangani dengan menggunakan SetFileSecurity dan GetFileSecurity.

Bendera bit ini dapat digabungkan dengan menggunakan operasi bitwise-OR. Untuk informasi selengkapnya, lihat CryptGetProvParam.

Jika dwParamPP_USE_HARDWARE_RNG atau PP_DELETEKEY, dwFlags harus diatur ke nol.

Mengembalikan nilai

Jika fungsi berhasil, nilai yang dikembalikan bukan nol (TRUE).

Jika fungsi gagal, nilai yang dikembalikan adalah nol (FALSE). Untuk informasi kesalahan yang diperluas, hubungi GetLastError.

Kode kesalahan yang diawali oleh "NTE" dihasilkan oleh CSP tertentu yang digunakan. Kode kesalahan mencakup yang berikut ini.

Menampilkan kode Deskripsi
ERROR_BUSY
Konteks CSP saat ini sedang digunakan oleh proses lain.
ERROR_INVALID_HANDLE
Salah satu parameter menentukan handel yang tidak valid.
ERROR_INVALID_PARAMETER
Salah satu parameter berisi nilai yang tidak valid. Ini paling sering merupakan pointer yang tidak valid.
NTE_BAD_FLAGS
Parameter dwFlags bukan nol atau buffer pbData berisi nilai yang tidak valid.
NTE_BAD_TYPE
Parameter dwParam menentukan parameter yang tidak diketahui.
NTE_BAD_UID
Konteks CSP yang ditentukan ketika kunci hKey dibuat tidak dapat ditemukan.
NTE_FAIL
Fungsi gagal dengan cara yang tidak terduga.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows XP [hanya aplikasi desktop]
Server minimum yang didukung Windows Server 2003 [hanya aplikasi desktop]
Target Platform Windows
Header wincrypt.h
Pustaka Advapi32.lib
DLL Advapi32.dll

Lihat juga

CryptAcquireContext

CryptGetProvParam

CryptSetKeyParam

Fungsi Penyedia Layanan