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_TRANSPFN_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