共用方式為


SslImportMasterKey 函式

SslImportMasterKey函式會執行伺服器端安全通訊端層通訊協定 (SSL) 金鑰交換作業。

語法

SECURITY_STATUS WINAPI SslImportMasterKey(
  _In_  NCRYPT_PROV_HANDLE hSslProvider,
  _In_  NCRYPT_KEY_HANDLE  hPrivateKey,
  _Out_ NCRYPT_KEY_HANDLE  *phMasterKey,
  _In_  DWORD              dwProtocol,
  _In_  DWORD              dwCipherSuite,
  _In_  PNCryptBufferDesc  pParameterList,
  _In_  PBYTE              pbEncryptedKey,
  _In_  DWORD              cbEncryptedKey,
  _In_  DWORD              dwFlags
);

參數

hSslProvider [in]

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

hPrivateKey [in]

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

phMasterKey [out]

接收 主要金鑰之控制碼的指標。

dwProtocol [in]

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

dwCipherSuite [in]

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

pParameterList [in]

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

pbEncryptedKey [in]

緩衝區的指標,其中包含使用伺服器的公開金鑰加密的加密前置密碼 金鑰

cbEncryptedKey [in]

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

dwFlags [in]

將此參數設定為 NCRYPT_SSL_SERVER_FLAG ,表示這是伺服器呼叫。

傳回值

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

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

可能的傳回碼包括但不限於下列各項。

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

備註

此函式會解密主控密碼、計算 SSL 主要密碼,並將這個物件的控制碼傳回給呼叫端。 然後,您可以使用此主要金鑰來衍生 SSL 工作階段金鑰,並完成 SSL 交握。

注意

使用 RSA 金鑰交換演算法時,會使用此函式。 使用 DH 時,伺服器程式碼會改為呼叫 SslGenerateMasterKey

規格需求

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