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 |