Share via


CMSG_CNG_CONTENT_DECRYPT_INFO-Struktur (wincrypt.h)

Die CMSG_CNG_CONTENT_DECRYPT_INFO-Struktur enthält alle relevanten Informationen, die zwischen installierbaren Funktionen von CryptMsgControl und OID ( Object Identifier ) für den Import und die Entschlüsselung einer Kryptografie-API übergeben werden: CNG-Inhaltsverschlüsselungsschlüssel der nächsten Generation (CEK). Die CryptMsgControl-Funktion verwendet diese Struktur, um die folgenden Funktionen aufzurufen:

Syntax

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;

Member

cbSize

Enthält die Größe dieser Struktur in Bytes.

ContentEncryptionAlgorithm

Eine CRYPT_ALGORITHM_IDENTIFIER-Struktur , die den Algorithmus angibt, der zum Verschlüsseln des Nachrichteninhalts und aller zugeordneten Parameter verwendet wird.

pfnAlloc

Ein Zeiger auf eine installierbare Funktion, die zum Zuweisen von Arbeitsspeicher für alle aktualisierten Member verwendet wird.

pfnFree

Ein Zeiger auf eine installierbare Funktion, die verwendet wird, um von pfnAlloc zugewiesenen Arbeitsspeicher freizugeben.

hNCryptKey

Ein Handle für den privaten CNG-Schlüssel , der für die Entschlüsselung des CEK verwendet werden soll, der im pKeyTransDecryptPara-Parameter oder im pKeyAgreeDecryptPara-Parameter der PFN_CMSG_CNG_IMPORT_KEY_TRANS-Funktion enthalten ist. Rückruffunktionen müssen diesen Schlüssel anstelle des Schlüssels verwenden, der in der DecryptPara-Struktur enthalten ist, da diese Struktur möglicherweise ein konvertiertes HCRYPTPROV-Handle enthalten kann.

pbContentEncryptKey

Mithilfe des hNCryptKey-Members muss die PFN_CMSG_CNG_IMPORT_KEY_TRANS-Funktion diesen Member aktualisieren, indem sie den CEK im pKeyTransDecryptPara-Parameter entschlüsselt, oder die PFN_CMSG_CNG_IMPORT_KEY_AGREE-Funktion muss diesen Member aktualisieren, indem sie den EncryptedKey im Parameter pKeyAgreeDecryptPara entschlüsselt. Der Arbeitsspeicher für dieses Element muss mithilfe des pfnAlloc-Elements zugewiesen werden. Die PFN_CMSG_CNG_IMPORT_CONTENT_ENCRYPT_KEY-Funktion verwendet diese Bytes als Geheimnis, um das hCNGContentEncryptKey-Element zu generieren. Selbst bei einem Fehler müssen Sie den zugewiesenen Arbeitsspeicher mithilfe des pfnFree-Members freigeben und null.

cbContentEncryptKey

Die PFN_CMSG_CNG_IMPORT_KEY_TRANS - oder PFN_CMSG_CNG_IMPORT_KEY_AGREE-Funktion muss diesen Member mit der Größe (in Bytes) des obigen pbContentEncryptKey-Members aktualisieren.

hCNGContentEncryptKey

Die PFN_CMSG_CNG_IMPORT_CONTENT_ENCRYPT_KEY-Funktion muss diesen Member mit dem generierten BCRYPT_KEY_HANDLE aktualisieren, um für die Inhaltsentschlüsselung verwendet zu werden. Selbst bei einem Fehler müssen Sie dieses Handle mit der Funktion BCryptDestroyKey freigeben.

pbCNGContentEncryptKeyObject

Die PFN_CMSG_CNG_IMPORT_CONTENT_ENCRYPT_KEY-Funktion muss diesen Member mit dem vom pfnAlloc-Member zugewiesenen Arbeitsspeicher aktualisieren, um dem hCNGContentEncryptKey-Member zugeordnet zu werden. Selbst bei einem Fehler müssen Sie den zugewiesenen Arbeitsspeicher mithilfe des pfnFree-Members freigeben und null.

Anforderungen

   
Unterstützte Mindestversion (Client) Windows Vista [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 [nur Desktop-Apps]
Kopfzeile wincrypt.h