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 |
---|---|
|
OriginatorCertId |
|
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 |
---|---|
|
Se actualizó el miembro UserKeyingMaterial . |
|
Se actualizó el miembro pszObjId de la estructura de CRYPT_ALGORITHM_IDENTIFIER a la que hace referencia el miembro KeyEncryptionAlgorithm . |
|
Se actualizó el miembro Parameters de la estructura CRYPT_ALGORITHM_IDENTIFIER a la que hace referencia keyEncryptionAlgorithm . |
|
Se actualizó el miembro Algorithm.pszObjId de la estructura de CERT_PUBLIC_KEY_INFO a la que hace referencia el miembro OriginatorPublicKeyInfo . |
|
Se actualizó el miembro PublicKey de la estructura CERT_PUBLIC_KEY_INFO a la que hace referencia el miembro OriginatorPublicKeyInfo . |
|
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 |