Fungsi BCryptOpenAlgorithmProvider (bcrypt.h)
Fungsi BCryptOpenAlgorithmProvider memuat dan menginisialisasi penyedia CNG.
Sintaksis
NTSTATUS BCryptOpenAlgorithmProvider(
[out] BCRYPT_ALG_HANDLE *phAlgorithm,
[in] LPCWSTR pszAlgId,
[in] LPCWSTR pszImplementation,
[in] ULONG dwFlags
);
Parameter
[out] phAlgorithm
Penunjuk ke variabel BCRYPT_ALG_HANDLE yang menerima handel penyedia CNG. Setelah Anda selesai menggunakan handel ini, lepaskan dengan meneruskannya ke fungsi BCryptCloseAlgorithmProvider.
[in] pszAlgId
Penunjuk ke string Unicode yang dihentikan null yang mengidentifikasi algoritma kriptografi yang diminta. Ini bisa menjadi salah satu pengidentifikasi Algoritma CNG standar atau pengidentifikasi untuk algoritma terdaftar lainnya.
[in] pszImplementation
Penunjuk ke string Unicode yang dihentikan null yang mengidentifikasi penyedia tertentu untuk dimuat. Ini adalah alias terdaftar dari penyedia primitif kriptografi. Parameter ini bersifat opsional dan dapat null jika tidak diperlukan. Jika parameter ini NULL, penyedia default untuk algoritma yang ditentukan akan dimuat.
Berikut ini adalah nama penyedia yang telah ditentukan sebelumnya.
[in] dwFlags
Bendera yang mengubah perilaku fungsi. Ini bisa nol atau kombinasi dari satu atau beberapa nilai berikut.
Nilai | Arti |
---|---|
|
Penyedia akan melakukan algoritma Hash-Based Message Authentication Code (HMAC) dengan algoritma hash yang ditentukan. Bendera ini hanya digunakan oleh penyedia algoritma hash. |
|
Memuat penyedia ke dalam kumpulan memori yang tidak dipalsukan. Jika bendera ini tidak ada, penyedia dimuat ke dalam kumpulan memori halaman. Ketika bendera ini ditentukan, handel yang dikembalikan tidak boleh ditutup sebelum semua objek dependen telah dibebaskan.
Catatan Bendera ini hanya didukung dalam mode kernel dan memungkinkan operasi berikutnya pada penyedia diproses di tingkat Pengiriman. Jika penyedia tidak mendukung dipanggil pada tingkat pengiriman, maka penyedia akan mengembalikan kesalahan saat dibuka menggunakan bendera ini.
|
|
Membuat objek hashing yang dapat digunakan kembali. Objek dapat digunakan untuk operasi hashing baru segera setelah memanggil BCryptFinishHash. Untuk informasi selengkapnya, lihat Membuat Hash dengan CNG.
Windows Server 2008 R2, Windows 7, Windows Server 2008 dan Windows Vista: Bendera ini tidak didukung. |
Mengembalikan nilai
Mengembalikan kode status yang menunjukkan keberhasilan atau kegagalan fungsi.
Kemungkinan kode pengembalian termasuk, tetapi tidak terbatas pada, berikut ini.
Mengembalikan kode | Deskripsi |
---|---|
|
Fungsi berhasil. |
|
Tidak ada penyedia yang ditemukan untuk ID algoritma yang ditentukan. |
|
Satu atau beberapa parameter tidak valid. |
|
Terjadi kegagalan alokasi memori. |
Komentar
Karena jumlah dan jenis operasi yang diperlukan untuk menemukan, memuat, dan menginisialisasi penyedia algoritma, fungsi
BCryptOpenAlgorithmProvider dapat dipanggil baik dari mode pengguna atau mode kernel. Pemanggil mode kernel harus dijalankan di PASSIVE_LEVELIRQL.
Untuk memanggil fungsi ini dalam mode kernel, gunakan Cng.lib, yang merupakan bagian dari Driver Development Kit (DDK). Windows Server 2008 dan Windows Vista: Untuk memanggil fungsi ini dalam mode kernel, gunakan Ksecdd.lib.
Mulai dari Windows 10, CNG tidak lagi mengikuti setiap pembaruan untuk konfigurasi kriptografi. Perubahan tertentu, seperti menambahkan penyedia default baru atau mengubah urutan preferensi penyedia algoritma, mungkin memerlukan boot ulang. Karena itu, Anda harus melakukan boot ulang sebelum memanggil BCryptOpenAlgorithmProvider dengan penyedia yang baru dikonfigurasi.
Persyaratan
Syarat | 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 |
bcrypt.h |
Pustaka |
Bcrypt.lib |
DLL |
Bcrypt.dll |