共用方式為


SslGenerateMasterKey 函式

SslGenerateMasterKey函式會計算安全通訊端層通訊協定 (SSL) 主要秘密金鑰。

語法

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
);

參數

hSslProvider [in]

SSL 通訊協定提供者實例的控制碼。

hPrivateKey [in]

交換中使用的 私密金鑰 控制碼。

hPublicKey [in]

交換中使用的 公開金鑰 控制碼。

phMasterKey [out]

所產生 主要金鑰控制碼的指標。

dwProtocol [in]

其中一個 CNG SSL 提供者通訊協定識別碼 值。

dwCipherSuite [in]

其中一個 CNG SSL 提供者加密套件識別碼 值。

pParameterList [in]

NCryptBuffer緩衝區陣列的指標,其中包含做為金鑰交換作業一部分的資訊。 精確的緩衝區集取決於使用的通訊協定和加密套件。 清單至少會包含包含用戶端和伺服器提供的隨機值的緩衝區。

pbOutput [out]

緩衝區的位址,該緩衝區會接收使用伺服器公開金鑰加密的預製主機密碼。 cbOutput參數包含這個緩衝區的大小。 如果此參數為Null,此函式會傳回由其所指向之 DWORD中所需的大小,以位元組為單位。

注意

執行 RSA 金鑰交換時,會使用此緩衝區。

cbOutput [in]

pbOutput緩衝區的大小,以位元組為單位。

azureResult [out]

DWORD值的指標,用來放置寫入pbOutput緩衝區的位元組數目。

dwFlags [in]

指定此函式是否用於用戶端或伺服器端金鑰交換。

意義
NCRYPT_SSL_CLIENT_FLAG
0x00000001
指定用戶端金鑰交換。
NCRYPT_SSL_SERVER_FLAG
0x00000002
指定伺服器端金鑰交換。

傳回值

如果函式成功,則會傳回零。

如果函式失敗,它會傳回非零的錯誤值。

可能的傳回碼包括但不限於下列專案。

傳回碼/值 Description
NTE_NO_MEMORY
0x8009000EL
記憶體不足,無法配置必要的緩衝區。
NTE_INVALID_HANDLE
0x80090026L
其中一個提供的控制碼無效。
NTE_INVALID_PARAMETER
0x80090027L
phMasterKeyhPublicKey參數無效。

規格需求

需求
最低支援的用戶端
Windows Vista [僅限傳統型應用程式]
最低支援的伺服器
Windows Server 2008 [僅限傳統型應用程式]
標頭
Sslprovider.h
DLL
Ncrypt.dll