Condividi tramite


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