Bagikan melalui


Fungsi SslGenerateMasterKey

Fungsi SslGenerateMasterKey menghitung kunci rahasia master protokol Secure Sockets Layer (SSL).

Sintaks

SECURITY_STATUS WINAPI SslGenerateMasterKey(
  _In_  NCRYPT_PROV_HANDLE hSslProvider,
  _In_  NCRYPT_KEY_HANDLE  hPrivateKey,
  _In_  NCRYPT_KEY_HANDLE  hPublicKey,
  _Out_ NCRYPT_KEY_HANDLE  *phMasterKey,
  _In_  DWORD              dwProtocol,
  _In_  DWORD              dwCipherSuite,
  _In_  PNCryptBufferDesc  pParameterList,
  _Out_ PBYTE              pbOutput,
  _In_  DWORD              cbOutput,
  _Out_ DWORD              *pcbResult,
  _In_  DWORD              dwFlags
);

Parameter

hSslProvider [in]

Handel ke instans penyedia protokol SSL.

hPrivateKey [in]

Handel ke kunci privat yang digunakan dalam pertukaran.

hPublicKey [in]

Handel ke kunci publik yang digunakan dalam pertukaran.

phMasterKey [out]

Penunjuk ke handel ke kunci master yang dihasilkan.

dwProtocol [in]

Salah satu nilai Pengidentifikasi Protokol Penyedia SSL CNG .

dwCipherSuite [in]

Salah satu nilai Pengidentifikasi Cipher Suite Penyedia SSL CNG .

pParameterList [in]

Penunjuk ke array buffer NCryptBuffer yang berisi informasi yang digunakan sebagai bagian dari operasi pertukaran kunci. Set buffer yang tepat tergantung pada protokol dan cipher suite yang digunakan. Minimal, daftar akan berisi buffer yang berisi nilai acak yang disediakan klien dan server.

pbOutput [out]

Alamat buffer yang menerima rahasia premaster yang dienkripsi dengan kunci umum server. Parameter cbOutput berisi ukuran buffer ini. Jika parameter ini NULL, fungsi ini mengembalikan ukuran yang diperlukan, dalam byte, dalam DWORD yang ditunjukkan oleh parameter pcbResult .

Catatan

Buffer ini digunakan saat melakukan pertukaran kunci RSA.

cbOutput [in]

Ukuran, dalam byte, dari buffer pbOutput .

pcbResult [out]

Penunjuk ke nilai DWORD untuk menempatkan jumlah byte yang ditulis ke buffer pbOutput .

dwFlags [in]

Menentukan apakah fungsi ini digunakan untuk pertukaran kunci sisi klien atau sisi server.

Nilai Makna
NCRYPT_SSL_CLIENT_FLAG
0x00000001
Menentukan pertukaran kunci sisi klien.
NCRYPT_SSL_SERVER_FLAG
0x00000002
Menentukan pertukaran kunci sisi server.

Mengembalikan nilai

Jika fungsi berhasil, fungsi akan mengembalikan nol.

Jika fungsi gagal, fungsi mengembalikan nilai kesalahan bukan nol.

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

Mengembalikan kode/nilai Deskripsi
NTE_NO_MEMORY
0x8009000EL
Memori tidak cukup tersedia untuk mengalokasikan buffer yang diperlukan.
NTE_INVALID_HANDLE
0x80090026L
Salah satu handel yang disediakan tidak valid.
NTE_INVALID_PARAMETER
0x80090027L
Parameter phMasterKey atau hPublicKey tidak valid.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung
Windows Vista [hanya aplikasi desktop]
Server minimum yang didukung
Windows Server 2008 [hanya aplikasi desktop]
Header
Sslprovider.h
DLL
Ncrypt.dll