PFN_CMSG_CNG_IMPORT_KEY_TRANS回呼函式 (wincrypt.h)

PFN_CMSG_CNG_IMPORT_KEY_TRANS回呼函式會 (匯入和解密 CEK) 的內容加密金鑰,該金鑰) 適用於金鑰傳輸收件者。 您可以使用密碼編譯 API 來安裝PFN_CMSG_CNG_IMPORT_KEY_TRANS:新一代 (CNG) 物件標識碼 (OID) 。

語法

PFN_CMSG_CNG_IMPORT_KEY_TRANS PfnCmsgCngImportKeyTrans;

BOOL PfnCmsgCngImportKeyTrans(
  [in, out] PCMSG_CNG_CONTENT_DECRYPT_INFO pCNGContentDecryptInfo,
  [in]      PCMSG_CTRL_KEY_TRANS_DECRYPT_PARA pKeyTransDecryptPara,
  [in]      DWORD dwFlags,
            void *pvReserved
)
{...}

參數

[in, out] pCNGContentDecryptInfo

要以解密 CEK 位元組更新 之CMSG_CNG_CONTENT_DECRYPT_INFO 結構的指標。 此參數包含用來解密 CEK 的金鑰。 下列 pKeyTransDecryptPara 參數包含要解密的 CEK 位元組。

[in] pKeyTransDecryptPara

CMSG_CTRL_KEY_TRANS_DECRYPT_PARA結構的指標,其中包含CMSG_CTRL_DECRYPT或CMSG_CTRL_KEY_TRANS_DECRYPT案例中傳遞至 CryptMsgControl 函式的密鑰傳輸資訊。 針對 CMSG_CTRL_DECRYPT 案例, CryptMsgControl 會將 CMSG_CTRL_DECRYPT_PARA 結構轉換成 CMSG_CTRL_KEY_TRANS_DECRYPT_PARA 結構。

pKeyTrans 成員的 EncryptedKey 成員包含要解密的 CEK 位元組。 因為 CMSG_CTRL_KEY_TRANS_DECRYPT_PARA 結構可能包含 HCRYPTPROV 選擇,所以其 hNCryptKey 成員不得用來解密 EncryptedKey。 您必須改用 pCNGContentDecryptInfo 參數中指定的 hNCryptKey

此函式不得更新 CMSG_CTRL_KEY_TRANS_DECRYPT_PARA 結構的成員。

[in] dwFlags

此參數已保留備用。 將它設定為零。

pvReserved

此參數已保留備用。 將它設定為 NULL

傳回值

如果函式成功,傳回值為非零 (TRUE) 。

如果函式失敗,傳回值為零, (FALSE) 。 如需擴充的錯誤資訊,請呼叫 GetLastError

如果這個回呼函式不支援密鑰加密演算法,它必須傳回 FALSE ,並使用 ERROR_NOT_SUPPORTED 呼叫 SetLastError

備註

CryptMsgControl 函式會針對 dwCtrlType 參數所指定的下列作業呼叫此函式:

CMSG_CTRL_DECRYPTCMSG_CTRL_KEY_TRANS_DECRYPT 您可以使用 OID 支援函式 來部署此回呼函式。 Wincrypt.h 會為此目的定義下列常數。

常數 定義
CMSG_OID_CNG_IMPORT_KEY_TRANS_FUNC “CryptMsgDllCNGImportKeyTrans”
 

範例

如需部署 OID 可安裝回呼函式的範例,請參閱 擴充 CryptoAPI 功能

規格需求

需求
最低支援的用戶端 Windows Vista [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2008 [僅限傳統型應用程式]
目標平台 Windows
標頭 wincrypt.h

另請參閱

譯碼信封數據