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 |