CMSG_KEY_AGREE_ENCRYPT_INFO-Struktur (wincrypt.h)

Die CMSG_KEY_AGREE_ENCRYPT_INFO-Struktur enthält Verschlüsselungsinformationen, die für alle Schlüsselabredeempfänger einer umhüllten Nachricht gelten. Die PFN_CMSG_EXPORT_KEY_AGREE-Funktion aktualisiert diese Struktur.

Syntax

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;

Member

cbSize

Die Größe (in Bytes) dieser Struktur.

dwRecipientIndex

Ein -Wert, der die Ordnungszahl eines Empfängers in der Empfängerliste angibt, die durch den pContentEncryptInfo-Parameter der PFN_CMSG_EXPORT_KEY_AGREE-Funktion angegeben wird.

KeyEncryptionAlgorithm

Eine CRYPT_ALGORITHM_IDENTIFIER-Struktur , die den Algorithmus angibt, der zum Verschlüsseln des Inhaltsverschlüsselungsschlüssels verwendet wird. Die CryptMsgOpenToEncode-Funktion verwendet den pszObjId-Member der CRYPT_ALGORITHM_IDENTIFIER-Struktur , um die Adresse der Funktion abzurufen, die zum Exportieren des Schlüssels verwendet wird. Die Funktion kann mithilfe einer Kryptografie-API installiert werden: CNG-Objektbezeichner (OID).

UserKeyingMaterial

Eine CRYPT_DATA_BLOB-Struktur , die vom Absender bereitgestelltes Benutzerschlüsselmaterial enthält, um sicherzustellen, dass jedes Mal ein anderer Schlüssel generiert wird, wenn die gleichen beiden Parteien einen paarweisen Schlüssel generieren.

dwOriginatorChoice

Ein DWORD , das den zu verwendenden Schlüsselbezeichner angibt. Dieser Member kann einer der folgenden Werte sein.

Wert Bedeutung
CMSG_KEY_AGREE_ORIGINATOR_CERT
OriginatorCertId
CMSG_KEY_AGREE_ORIGINATOR_PUBLIC_KEY
OriginatorPublicKeyInfo

DUMMYUNIONNAME

DUMMYUNIONNAME.OriginatorCertId

Eine CERT_ID-Struktur , die den öffentlichen Schlüssel des Nachrichtenentstellers identifiziert.

DUMMYUNIONNAME.OriginatorPublicKeyInfo

Eine CERT_PUBLIC_KEY_INFO-Struktur , die den öffentlichen Schlüssel des Nachrichtenentstellers enthält.

cKeyAgreeKeyEncryptInfo

Ein -Wert, der die Anzahl der Empfänger im Parameter rgpKeyAgreeKeyEncryptInfo angibt.

rgpKeyAgreeKeyEncryptInfo

Ein Array von CMSG_KEY_AGREE_KEY_ENCRYPT_INFO Strukturen, die den verschlüsselten Schlüssel für jeden Empfänger enthalten.

dwFlags

Ein -Wert, der angibt, welche Member aktualisiert wurden und deren Speicherbelegung mithilfe der CryptMsgOpenToEncode-Funktion freigegeben werden muss.

Wert Bedeutung
CMSG_KEY_AGREE_ENCRYPT_FREE_MATERIAL_FLAG
0x00000002
Das UserKeyingMaterial-Element wurde aktualisiert.
CMSG_KEY_AGREE_ENCRYPT_FREE_OBJID_FLAG
0x00000020
Das pszObjId-Element der CRYPT_ALGORITHM_IDENTIFIER-Struktur , auf die vom KeyEncryptionAlgorithm-Member verwiesen wird, wurde aktualisiert.
CMSG_KEY_AGREE_ENCRYPT_FREE_PARA_FLAG
0x00000001
Der Parameter-Member der CRYPT_ALGORITHM_IDENTIFIER-Struktur , auf die vom KeyEncryptionAlgorithm-Element verwiesen wird, wurde aktualisiert.
CMSG_KEY_AGREE_ENCRYPT_FREE_PUBKEY_ALG_FLAG
0x00000004
Das Algorithm.pszObjId-Element der CERT_PUBLIC_KEY_INFO-Struktur , auf die vom OriginatorPublicKeyInfo-Member verwiesen wird, wurde aktualisiert.
CMSG_KEY_AGREE_ENCRYPT_FREE_PUBKEY_BITS_FLAG
0x00000010
Das PublicKey-Element der CERT_PUBLIC_KEY_INFO-Struktur , auf die vom OriginatorPublicKeyInfo-Member verwiesen wird, wurde aktualisiert.
CMSG_KEY_AGREE_ENCRYPT_FREE_PUBKEY_PARA_FLAG
0x00000008
Der Algorithm.Parameters-Member der CERT_PUBLIC_KEY_INFO-Struktur , auf die vom OriginatorPublicKeyInfo-Member verwiesen wird, wurde aktualisiert.

Hinweise

Wenn der dwMsgType-Parameter auf CMSG_ENVELOPED festgelegt ist, initialisiert die CryptMsgOpenToEncode-Funktion die CMSG_KEY_AGREE_ENCRYPT_INFO-Struktur aus der CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO-Struktur . Die Funktion CryptMsgOpenToEncode ruft die funktion PFN_CMSG_EXPORT_KEY_AGREE auf, um die CMSG_KEY_AGREE_ENCRYPT_INFO-Struktur zu aktualisieren. Wenn die Rückruffunktion nicht gefunden werden kann, füllt die CryptMsgOpenToEncode-Funktion diese Struktur mit Standardschlüsselinformationen aus der CMSG_CONTENT_ENCRYPT_INFO-Struktur aus.

Die folgenden Member der CMSG_KEY_AGREE_ENCRYPT_INFO-Struktur können von der Rückruffunktion aktualisiert werden:

UserKeyingMaterial
KeyEncryptionAlgorithm.pszObjId
KeyEncryptionAlgorithm.Parameters
dwOriginatorChoice
OriginatorCertId
OriginatorPublicKeyInfo
dwFlags

Die anderen Member sind schreibgeschützt.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows XP [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 [nur Desktop-Apps]
Kopfzeile wincrypt.h