다음을 통해 공유


CMSG_CNG_CONTENT_DECRYPT_INFO 구조체(wincrypt.h)

CMSG_CNG_CONTENT_DECRYPT_INFO 구조에는 Cryptography API: CNG(차세대) CEK(콘텐츠 암호화 키)의 가져오기 및 암호 해독을 위한 CryptMsgControl과 OID(개체 식별자) 설치 가능한 함수 간에 전달된 모든 관련 정보가 포함됩니다. 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프라이빗 키에 대한 핸들입니다. 콜백 함수는 변환된 HCRYPTPROV 핸들을 포함할 수 있으므로 DecryptPara 구조체에 포함된 키 대신 이 키를 사용해야 합니다.

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 멤버를 사용하여 할당된 메모리를 해제하고 0으로 설정해야 합니다.

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 함수는 hCNGContentEncryptKey 멤버와 연결되도록 pfnAlloc 멤버가 할당한 메모리로 이 멤버를 업데이트해야 합니다. 오류가 발생하더라도 pfnFree 멤버를 사용하여 할당된 메모리를 해제하고 0으로 설정해야 합니다.

요구 사항

   
지원되는 최소 클라이언트 Windows Vista [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2008 [데스크톱 앱만 해당]
머리글 wincrypt.h