CMSG_CNG_CONTENT_DECRYPT_INFO struttura (wincrypt.h)
La struttura CMSG_CNG_CONTENT_DECRYPT_INFO contiene tutte le informazioni pertinenti passate tra CryptMsgControle le funzioni installabili (OID) per l'importazione e la decrittografia di un'API di crittografia: chiave di crittografia (CNG) del contenuto (CEK). La funzione CryptMsgControl usa questa struttura per chiamare le funzioni seguenti:
Sintassi
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;
Members
cbSize
Contiene le dimensioni, in byte, di questa struttura.
ContentEncryptionAlgorithm
Struttura CRYPT_ALGORITHM_IDENTIFIER che specifica l'algoritmo usato per crittografare il contenuto del messaggio e tutti i parametri associati.
pfnAlloc
Puntatore a una funzione installabile usata per allocare memoria per qualsiasi membro aggiornato.
pfnFree
Puntatore a una funzione installabile usata per liberare memoria allocata da pfnAlloc.
hNCryptKey
Handle per la chiave privata CNG da usare per la decrittografia della chiave CEK contenuta nel parametro pKeyTransDecryptPara o il parametro pKeyAgreeDecryptPara della funzione PFN_CMSG_CNG_IMPORT_KEY_TRANS. Le funzioni di callback devono usare questa chiave anziché quella contenuta nella struttura DecryptPara perché tale struttura potrebbe contenere un handle HCRYPTPROV convertito.
pbContentEncryptKey
Usando il membro hNCryptKey, la funzione PFN_CMSG_CNG_IMPORT_KEY_TRANS deve aggiornare questo membro decrittografando il codice CEK nel parametro pKeyTransDecryptParao la funzionePFN_CMSG_CNG_IMPORT_KEY_AGREE deve aggiornare questo membro decrittografando il parametro EncryptedKey nel parametro pKeyAgreeDecryptPara. La memoria per questo membro deve essere allocata usando il membro pfnAlloc . La funzione PFN_CMSG_CNG_IMPORT_CONTENT_ENCRYPT_KEY userà questi byte come segreto per generare il membro hCNGContentEncryptKey . Anche per un errore, è necessario liberare e zero qualsiasi memoria allocata usando il membro pfnFree .
cbContentEncryptKey
La funzione PFN_CMSG_CNG_IMPORT_KEY_TRANS o PFN_CMSG_CNG_IMPORT_KEY_AGREE deve aggiornare questo membro con le dimensioni, in byte, del membro pbContentEncryptKey precedente.
hCNGContentEncryptKey
La funzione PFN_CMSG_CNG_IMPORT_CONTENT_ENCRYPT_KEY deve aggiornare questo membro con il BCRYPT_KEY_HANDLE generato da usare per la decrittografia del contenuto. Anche per un errore, è necessario rilasciare questo handle usando la funzione BCryptDestroyKey .
pbCNGContentEncryptKeyObject
La funzione PFN_CMSG_CNG_IMPORT_CONTENT_ENCRYPT_KEY deve aggiornare questo membro con la memoria allocata dal membro pfnAlloc da associare al membro hCNGContentEncryptKey . Anche per un errore, è necessario liberare e zero qualsiasi memoria allocata usando il membro pfnFree .
Requisiti
Client minimo supportato | Windows Vista [solo app desktop] |
Server minimo supportato | Windows Server 2008 [solo app desktop] |
Intestazione | wincrypt.h |