Condividi tramite


CMSG_KEY_AGREE_ENCRYPT_INFO struttura (wincrypt.h)

La struttura CMSG_KEY_AGREE_ENCRYPT_INFO contiene informazioni di crittografia applicabili a tutti i destinatari del contratto chiave di un messaggio busto. La funzione PFN_CMSG_EXPORT_KEY_AGREE aggiorna questa struttura.

Sintassi

typedef struct _CMSG_KEY_AGREE_ENCRYPT_INFO {
  DWORD                            cbSize;
  DWORD                            dwRecipientIndex;
  CRYPT_ALGORITHM_IDENTIFIER       KeyEncryptionAlgorithm;
  CRYPT_DATA_BLOB                  UserKeyingMaterial;
  DWORD                            dwOriginatorChoice;
  union {
    CERT_ID              OriginatorCertId;
    CERT_PUBLIC_KEY_INFO OriginatorPublicKeyInfo;
  } DUMMYUNIONNAME;
  DWORD                            cKeyAgreeKeyEncryptInfo;
  PCMSG_KEY_AGREE_KEY_ENCRYPT_INFO *rgpKeyAgreeKeyEncryptInfo;
  DWORD                            dwFlags;
} CMSG_KEY_AGREE_ENCRYPT_INFO, *PCMSG_KEY_AGREE_ENCRYPT_INFO;

Members

cbSize

Dimensione, in byte, della struttura.

dwRecipientIndex

Valore che specifica il numero ordinale di un destinatario nell'elenco dei destinatari specificato dal parametro pContentEncryptInfo della funzione PFN_CMSG_EXPORT_KEY_AGREE .

KeyEncryptionAlgorithm

Struttura CRYPT_ALGORITHM_IDENTIFIER che specifica l'algoritmo usato per crittografare la chiave di crittografia del contenuto. La funzione CryptMsgOpenToEncode usa il membro pszObjId della struttura CRYPT_ALGORITHM_IDENTIFIER per ottenere l'indirizzo della funzione usata per esportare la chiave. La funzione può essere installata usando un'API di crittografia: identificatore dell'oggetto CNG (Next Generation) (OID).

UserKeyingMaterial

Struttura CRYPT_DATA_BLOB che contiene materiale di chiave utente fornito dal mittente per garantire che una chiave diversa venga generata ogni volta che le stesse due parti generano una chiave a livello di coppia.

dwOriginatorChoice

DWORD che indica l'identificatore della chiave da usare. Questo membro può essere uno dei valori seguenti.

Valore Significato
CMSG_KEY_AGREE_ORIGINATOR_CERT
OriginatorCertId
CMSG_KEY_AGREE_ORIGINATOR_PUBLIC_KEY
OriginatorPublicKeyInfo

DUMMYUNIONNAME

DUMMYUNIONNAME.OriginatorCertId

Struttura CERT_ID che identifica la chiave pubblica dell'origine del messaggio.

DUMMYUNIONNAME.OriginatorPublicKeyInfo

Struttura CERT_PUBLIC_KEY_INFO contenente la chiave pubblica dell'origine del messaggio.

cKeyAgreeKeyEncryptInfo

Valore che specifica il numero di destinatari nel parametro rgpKeyAgreeKeyEncryptInfo .

rgpKeyAgreeKeyEncryptInfo

Matrice di strutture CMSG_KEY_AGREE_KEY_ENCRYPT_INFO che contengono la chiave crittografata per ogni destinatario.

dwFlags

Valore che specifica i membri aggiornati e la cui allocazione di memoria deve essere liberata usando la funzione CryptMsgOpenToEncode .

Valore Significato
CMSG_KEY_AGREE_ENCRYPT_FREE_MATERIAL_FLAG
0x00000002
Il membro UserKeyingMaterial è stato aggiornato .
CMSG_KEY_AGREE_ENCRYPT_FREE_OBJID_FLAG
0x00000020
Il membro pszObjId della struttura CRYPT_ALGORITHM_IDENTIFIER a cui fa riferimento il membro KeyEncryptionAlgorithm è stato aggiornato.
CMSG_KEY_AGREE_ENCRYPT_FREE_PARA_FLAG
0x00000001
Il membro Parameters della struttura CRYPT_ALGORITHM_IDENTIFIER a cui fa riferimento il membro KeyEncryptionAlgorithm è stato aggiornato.
CMSG_KEY_AGREE_ENCRYPT_FREE_PUBKEY_ALG_FLAG
0x00000004
Il membro Algorithm.pszObjId della struttura CERT_PUBLIC_KEY_INFO a cui fa riferimento il membro OriginatorPublicKeyInfo è stato aggiornato.
CMSG_KEY_AGREE_ENCRYPT_FREE_PUBKEY_BITS_FLAG
0x00000010
Il membro PublicKey della struttura CERT_PUBLIC_KEY_INFO a cui fa riferimento il membro OriginatorPublicKeyInfo è stato aggiornato.
CMSG_KEY_AGREE_ENCRYPT_FREE_PUBKEY_PARA_FLAG
0x00000008
Il membro Algorithm.Parameters della struttura CERT_PUBLIC_KEY_INFO a cui fa riferimento il membro OriginatorPublicKeyInfo è stato aggiornato.

Commenti

Quando viene chiamato con il parametro dwMsgType impostato su CMSG_ENVELOPED, la funzione CryptMsgOpenToEncode inizializza la struttura di CMSG_KEY_AGREE_ENCRYPT_INFO dalla struttura CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO . La funzione CryptMsgOpenToEncode chiama la funzione PFN_CMSG_EXPORT_KEY_AGREE per aggiornare la struttura CMSG_KEY_AGREE_ENCRYPT_INFO . Se non è possibile trovare la funzione di callback, la funzione CryptMsgOpenToEncode riempie questa struttura con informazioni chiave predefinite dalla struttura CMSG_CONTENT_ENCRYPT_INFO .

I membri seguenti della struttura CMSG_KEY_AGREE_ENCRYPT_INFO possono essere aggiornati dalla funzione callback:

UserKeyingMaterial
KeyEncryptionAlgorithm.pszObjId
KeyEncryptionAlgorithm.Parameters
dwOriginatorChoice
OriginatorCertId
OriginatorPublicKeyInfo
dwFlags

Gli altri membri sono di sola lettura.

Requisiti

Requisito Valore
Client minimo supportato Windows XP [solo app desktop]
Server minimo supportato Windows Server 2003 [solo app desktop]
Intestazione wincrypt.h