SslExportKey 函式

SslExportKey函式會將安全通訊端層通訊協定 (SSL) 工作階段金鑰或公用暫時金鑰傳回序列化的BLOB

語法

SECURITY_STATUS WINAPI SslExportKey(
  _In_      NCRYPT_PROV_HANDLE hSslProvider,
  _In_      NCRYPT_KEY_HANDLE  hKey,
  _In_      LPCWSTR            pszBlobType,
  _Out_opt_ PBYTE              pbOutput,
  _In_      DWORD              cbOutput,
  _Out_     DWORD              *pcbResult,
  _In_      DWORD              dwFlags
);

參數

hSslProvider [in]

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

hKey [in]

要匯出之金鑰的控制碼。

當您未指定金鑰時,請將此參數設定為 Null

注意

呼叫SslOpenPrivateKey函式可取得hKey控制碼。 不支援從 NCryptOpenKey 函式取得的控制碼。

pszBlobType [in]

Null 終止的 Unicode 字串,其中包含指定要匯出之 BLOB 類型的識別碼。 這可以是下列其中一個值。

意義
BCRYPT_DH_PUBLIC_BLOB
匯出Diffie-Hellman 公開金鑰pbOutput緩衝區會立即接收BCRYPT_DH_KEY_BLOB結構,後面接著索引鍵資料。
BCRYPT_ECCPUBLIC_BLOB
匯出 橢圓曲線密碼編譯 (ECC) 公開金鑰。 pbOutput緩衝區會立即接收BCRYPT_ECCKEY_BLOB結構,後面接著索引鍵資料。
BCRYPT_OPAQUE_KEY_BLOB
以單一 密碼編譯服務提供者 特定的格式匯出對稱金鑰, (CSP) 。 不透明 BLOB 無法傳輸,而且必須使用產生 BLOB 的相同 密碼編譯服務提供者 (CSP) 匯入。
BCRYPT_RSAPUBLIC_BLOB
匯出 RSA 公開金鑰。 pbOutput緩衝區會立即接收BCRYPT_RSAKEY_BLOB結構,後面接著索引鍵資料。

pbOutput [out, optional]

接收 金鑰 BLOB的緩衝區位址。 cbOutput參數包含這個緩衝區的大小。 如果此參數為Null,則此函式會將所需的大小,以位元組為單位,放在由 azureResult參數所指向的DWORD中。

cbOutput [in]

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

azureResult [out]

接收復制到pbOutput緩衝區之位元組數目的DWORD變數位址。 如果在呼叫函式時,pbOutput參數設定為Null,則會在此參數所指向的DWORD中傳回pbOutput緩衝區的必要大小,以位元組為單位。

dwFlags [in]

保留供未來使用。

傳回值

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

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

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

傳回碼/值 Description
NTE_INVALID_HANDLE
0x80090026L
其中一個提供的控制碼無效。

備註

SslExportKey函式有助於將工作階段金鑰從一個進程傳輸到另一個進程,以及匯出暫時金鑰的公用部分。

匯出工作階段金鑰時,BLOB 類型不透明,這表示只要 SslExportKeySslImportKey 函式可以解譯 BLOB 的格式就無關。

匯出暫時金鑰的公用部分時,BLOB 類型必須是適當的類型,例如 NCRYPT_DH_PUBLIC_BLOBNCRYPT_ECCPUBLIC_BLOB

規格需求

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