CMSG_CNG_CONTENT_DECRYPT_INFO 結構 (wincrypt.h)
CMSG_CNG_CONTENT_DECRYPT_INFO結構包含在 CryptMsgControl與物件識別碼之間傳遞的所有相關資訊, (OID) 可安裝函式,以匯入和解密密碼編譯 API:新一代 (CNG) 內容加密金鑰 (CEK) 。 CryptMsgControl函式會使用此結構來呼叫下列函式:
語法
typedef struct _CMSG_CNG_CONTENT_DECRYPT_INFO {
DWORD cbSize;
CRYPT_ALGORITHM_IDENTIFIER ContentEncryptionAlgorithm;
PFN_CMSG_ALLOC pfnAlloc;
PFN_CMSG_FREE pfnFree;
NCRYPT_KEY_HANDLE hNCryptKey;
BYTE *pbContentEncryptKey;
DWORD cbContentEncryptKey;
BCRYPT_KEY_HANDLE hCNGContentEncryptKey;
BYTE *pbCNGContentEncryptKeyObject;
} CMSG_CNG_CONTENT_DECRYPT_INFO, *PCMSG_CNG_CONTENT_DECRYPT_INFO;
成員
cbSize
包含這個 結構的大小,以位元組為單位。
ContentEncryptionAlgorithm
CRYPT_ALGORITHM_IDENTIFIER結構,指定用來加密訊息內容和任何相關聯參數的演算法。
pfnAlloc
可安裝函式的指標,用來為任何更新的成員配置記憶體。
pfnFree
可安裝函式的指標,用來釋放 pfnAlloc所配置的記憶體。
hNCryptKey
要用於解密pKeyTransDecryptPara參數或PFN_CMSG_CNG_IMPORT_KEY_TRANS函式之 pKeyAgreeDecryptPara參數中所含 CEK 的 CNG私密金鑰控制碼。 回呼函式必須使用這個金鑰,而不是 DecryptPara 結構中包含的金鑰,因為該結構可能包含已轉換 的 HCRYPTPROV 控制碼。
pbContentEncryptKey
使用 hNCryptKey 成員, PFN_CMSG_CNG_IMPORT_KEY_TRANS 函式必須藉由解密 pKeyTransDecryptPara 參數中的 CEK 或 PFN_CMSG_CNG_IMPORT_KEY_AGREE 函式來更新此成員,方法是解密 pKeyAgreeDecryptPara 參數中的 EncryptedKey 來更新此成員。 此成員的記憶體必須使用 pfnAlloc 成員來配置。 PFN_CMSG_CNG_IMPORT_CONTENT_ENCRYPT_KEY函式會使用這些位元組作為秘密來產生hCNGContentEncryptKey成員。 即使發生錯誤,您也必須使用 pfnFree 成員釋放和零任何配置的記憶體。
cbContentEncryptKey
PFN_CMSG_CNG_IMPORT_KEY_TRANS或PFN_CMSG_CNG_IMPORT_KEY_AGREE函式必須以上述pbContentEncryptKey成員的大小,以位元組為單位來更新此成員。
hCNGContentEncryptKey
PFN_CMSG_CNG_IMPORT_CONTENT_ENCRYPT_KEY函式必須使用產生的BCRYPT_KEY_HANDLE來更新此成員,才能用於爭用解密。 即使發生錯誤,您也必須使用 BCryptDestroyKey 函式來釋放此控制碼。
pbCNGContentEncryptKeyObject
PFN_CMSG_CNG_IMPORT_CONTENT_ENCRYPT_KEY函式必須使用pfnAlloc成員配置的記憶體來更新此成員,才能與hCNGContentEncryptKey成員相關聯。 即使發生錯誤,您也必須使用 pfnFree 成員釋放和零任何配置的記憶體。
規格需求
最低支援的用戶端 | Windows Vista [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2008 [僅限傳統型應用程式] |
標頭 | wincrypt.h |