Bagikan melalui


Fungsi BCryptSecretAgreement (bcrypt.h)

Fungsi BCryptSecretAgreement membuat nilai perjanjian rahasia dari privat dan kunci publik.

Sintaksis

NTSTATUS BCryptSecretAgreement(
  [in]  BCRYPT_KEY_HANDLE    hPrivKey,
  [in]  BCRYPT_KEY_HANDLE    hPubKey,
  [out] BCRYPT_SECRET_HANDLE *phAgreedSecret,
  [in]  ULONG                dwFlags
);

Parameter

[in] hPrivKey

Handel kunci privat untuk digunakan untuk membuat nilai perjanjian rahasia. Kunci ini dan kunci hPubKey harus berasal dari penyedia algoritma kriptografi CNG yang sama.

[in] hPubKey

Handel kunci publik digunakan untuk membuat nilai perjanjian rahasia. Kunci ini dan kunci hPrivKey harus berasal dari penyedia algoritma kriptografi CNG yang sama.

[out] phAgreedSecret

Pointer ke BCRYPT_SECRET_HANDLE yang menerima handel yang mewakili nilai perjanjian rahasia. Handel ini harus dirilis dengan meneruskannya ke fungsi BCryptDestroySecret ketika tidak lagi diperlukan.

[in] dwFlags

Sekumpulan bendera yang mengubah perilaku fungsi ini. Tidak ada bendera yang didefinisikan untuk fungsi ini.

Mengembalikan nilai

Mengembalikan kode status yang menunjukkan keberhasilan atau kegagalan fungsi.

Kemungkinan kode pengembalian termasuk, tetapi tidak terbatas pada, berikut ini.

Mengembalikan kode Deskripsi
STATUS_SUCCESS
Fungsi berhasil.
STATUS_INVALID_HANDLE
Handel kunci di parameter hPrivKey atau hPubKey tidak valid.
STATUS_INVALID_PARAMETER
Satu atau beberapa parameter tidak valid.
STATUS_NOT_SUPPORTED
Handel kunci dalam parameter hPrivKey bukan kunci Diffie-Hellman.

Komentar

Bergantung pada mode prosesor apa yang didukung penyedia, BCryptSecretAgreement dapat dipanggil baik dari mode pengguna atau mode kernel. Pemanggil mode kernel dapat menjalankan baik di PASSIVE_LEVELIRQL atau IRQL DISPATCH_LEVEL. Jika tingkat IRQL saat ini DISPATCH_LEVEL, handel yang disediakan dalam parameter hPrivKey dan parameter hPubKey harus berasal dari handel algoritma yang dikembalikan oleh penyedia yang dibuka dengan menggunakan bendera BCRYPT_PROV_DISPATCH, dan setiap pointer yang diteruskan ke fungsi BCryptSecretAgreement harus merujuk ke memori yang tidak dipagasi (atau dikunci).

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.

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

Lihat juga

BCryptDestroySecret