estructura CMSG_KEY_AGREE_ENCRYPT_INFO (wincrypt.h)

La estructura de CMSG_KEY_AGREE_ENCRYPT_INFO contiene información de cifrado aplicable a todos los destinatarios del contrato de clave de un mensaje sobre. La función PFN_CMSG_EXPORT_KEY_AGREE actualiza esta estructura.

Sintaxis

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;

Miembros

cbSize

Tamaño, en bytes, de esta estructura.

dwRecipientIndex

Valor que especifica el número ordinal de un destinatario en la lista de destinatarios especificado por el parámetro pContentEncryptInfo de la función PFN_CMSG_EXPORT_KEY_AGREE .

KeyEncryptionAlgorithm

Estructura CRYPT_ALGORITHM_IDENTIFIER que especifica el algoritmo utilizado para cifrar la clave de cifrado de contenido. La función CryptMsgOpenToEncode usa el miembro pszObjId de la estructura CRYPT_ALGORITHM_IDENTIFIER para obtener la dirección de la función utilizada para exportar la clave. La función se puede instalar mediante un identificador de objeto de Cryptography API: Next Generation (CNG) (OID).

UserKeyingMaterial

Estructura de CRYPT_DATA_BLOB que contiene material de clave de usuario proporcionado por el remitente para asegurarse de que se genera una clave diferente cada vez que las mismas dos partes generan una clave en pares.

dwOriginatorChoice

DWORD que indica el identificador de clave que se va a usar. Este miembro puede ser uno de los siguientes valores.

Valor Significado
CMSG_KEY_AGREE_ORIGINATOR_CERT
OriginatorCertId
CMSG_KEY_AGREE_ORIGINATOR_PUBLIC_KEY
OriginatorPublicKeyInfo

DUMMYUNIONNAME

DUMMYUNIONNAME.OriginatorCertId

Estructura CERT_ID que identifica la clave pública del originador del mensaje.

DUMMYUNIONNAME.OriginatorPublicKeyInfo

Estructura CERT_PUBLIC_KEY_INFO que contiene la clave pública del originador del mensaje.

cKeyAgreeKeyEncryptInfo

Valor que especifica el número de destinatarios en el parámetro rgpKeyAgreeKeyEncryptInfo .

rgpKeyAgreeKeyEncryptInfo

Matriz de estructuras de CMSG_KEY_AGREE_KEY_ENCRYPT_INFO que contienen la clave cifrada para cada destinatario.

dwFlags

Valor que especifica qué miembros se han actualizado y cuya asignación de memoria debe liberarse mediante la función CryptMsgOpenToEncode .

Valor Significado
CMSG_KEY_AGREE_ENCRYPT_FREE_MATERIAL_FLAG
0x00000002
Se actualizó el miembro UserKeyingMaterial .
CMSG_KEY_AGREE_ENCRYPT_FREE_OBJID_FLAG
0x00000020
Se actualizó el miembro pszObjId de la estructura de CRYPT_ALGORITHM_IDENTIFIER a la que hace referencia el miembro KeyEncryptionAlgorithm .
CMSG_KEY_AGREE_ENCRYPT_FREE_PARA_FLAG
0x00000001
Se actualizó el miembro Parameters de la estructura CRYPT_ALGORITHM_IDENTIFIER a la que hace referencia keyEncryptionAlgorithm .
CMSG_KEY_AGREE_ENCRYPT_FREE_PUBKEY_ALG_FLAG
0x00000004
Se actualizó el miembro Algorithm.pszObjId de la estructura de CERT_PUBLIC_KEY_INFO a la que hace referencia el miembro OriginatorPublicKeyInfo .
CMSG_KEY_AGREE_ENCRYPT_FREE_PUBKEY_BITS_FLAG
0x00000010
Se actualizó el miembro PublicKey de la estructura CERT_PUBLIC_KEY_INFO a la que hace referencia el miembro OriginatorPublicKeyInfo .
CMSG_KEY_AGREE_ENCRYPT_FREE_PUBKEY_PARA_FLAG
0x00000008
Se actualizó el miembro Algorithm.Parameters de la estructura CERT_PUBLIC_KEY_INFO a la que hace referencia el miembro OriginatorPublicKeyInfo .

Comentarios

Cuando se llama con el parámetro dwMsgType establecido en CMSG_ENVELOPED, la función CryptMsgOpenToEncode inicializa la estructura CMSG_KEY_AGREE_ENCRYPT_INFO de la estructura CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO . La función CryptMsgOpenToEncode llama a la función PFN_CMSG_EXPORT_KEY_AGREE para actualizar la estructura de CMSG_KEY_AGREE_ENCRYPT_INFO . Si no se encuentra la función de devolución de llamada, la función CryptMsgOpenToEncode rellena esta estructura con información de clave predeterminada de la estructura CMSG_CONTENT_ENCRYPT_INFO .

La función de devolución de llamada puede actualizar los siguientes miembros de la estructura de CMSG_KEY_AGREE_ENCRYPT_INFO :

UserKeyingMaterial
KeyEncryptionAlgorithm.pszObjId
KeyEncryptionAlgorithm.Parameters
dwOriginatorChoice
OriginatorCertId
OriginatorPublicKeyInfo
dwFlags

Los demás miembros son de solo lectura.

Requisitos

Requisito Value
Cliente mínimo compatible Windows XP [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2003 [solo aplicaciones de escritorio]
Encabezado wincrypt.h