estructura CMSG_ENVELOPED_ENCODE_INFO (wincrypt.h)
La estructura CMSG_ENVELOPED_ENCODE_INFO contiene información necesaria para codificar un mensaje sobre. Se pasa a CryptMsgOpenToEncode si el parámetro dwMsgType es CMSG_ENVELOPED.
Sintaxis
typedef struct _CMSG_ENVELOPED_ENCODE_INFO {
DWORD cbSize;
HCRYPTPROV_LEGACY hCryptProv;
CRYPT_ALGORITHM_IDENTIFIER ContentEncryptionAlgorithm;
void *pvEncryptionAuxInfo;
DWORD cRecipients;
PCERT_INFO *rgpRecipients;
PCMSG_RECIPIENT_ENCODE_INFO rgCmsRecipients;
DWORD cCertEncoded;
PCERT_BLOB rgCertEncoded;
DWORD cCrlEncoded;
PCRL_BLOB rgCrlEncoded;
DWORD cAttrCertEncoded;
PCERT_BLOB rgAttrCertEncoded;
DWORD cUnprotectedAttr;
PCRYPT_ATTRIBUTE rgUnprotectedAttr;
} CMSG_ENVELOPED_ENCODE_INFO, *PCMSG_ENVELOPED_ENCODE_INFO;
Miembros
cbSize
Tamaño, en bytes, de esta estructura.
hCryptProv
Este miembro no se usa y debe establecerse en NULL.
Windows Server 2003 y Windows XP: Especifica un identificador para el proveedor de servicios criptográficos (CSP) que se usa para realizar el cifrado de contenido, el cifrado de clave de destinatario y la exportación. No se usan las claves privadas de hCryptProv .
El tipo de datos de este miembro es HCRYPTPROV.
A menos que haya un motivo seguro para pasar un proveedor criptográfico específico en hCryptProv, pase cero para usar el proveedor RSA o DSS predeterminado.
ContentEncryptionAlgorithm
Estructura CRYPT_ALGORITHM_IDENTIFIER que contiene el tipo de algoritmo de firma y los parámetros adicionales asociados en formato codificado.
El miembro pszObjId de la estructura especifica el algoritmo utilizado para cifrar el contenido del mensaje.
Los siguientes algoritmos de cifrado requieren un vector de inicialización de ocho bytes codificado (IV) en el miembro Parameters de la estructura. Para más información, consulte CryptSetKeyParam.
Valor | Significado |
---|---|
|
szOID_OIWSEC_desCBC |
|
szOID_RSA_DES_EDE3_CBC |
Si el miembro cbData del miembro Parameters es cero, se genera una cadena OCTET codificada con notación de sintaxis abstracta ( ASN.1) que contiene el IV mediante CryptGenRandom.
El algoritmo de szOID_RSA_RC2CBC (CALG_RC2) requiere que el miembro pbData de Parameters sea una estructura de CRYPT_RC2_CBC_PARAMETERS codificada. Si el miembro cbData del miembro Parameters es cero, se genera un CRYPT_RC2_CBC_PARAMETERS codificado ASN.1 con un valor predeterminado de 40 para el miembro dwVersion . Esto establece la longitud de clave predeterminada en 40 bits. Esta longitud de clave predeterminada se puede invalidar con pvEncryptionAuxInfo que apunta a una estructura de CMSG_RC2_AUX_INFO que contiene la longitud de clave deseada.
pvEncryptionAuxInfo
Puntero a una estructura en función del algoritmo de cifrado.
Valor | Significado |
---|---|
|
|
|
|
|
|
|
NULL |
cRecipients
Número de elementos de la matriz rgpRecipients o rgCmsRecipients .
rgpRecipients
Matriz de punteros para CERT_INFO estructuras, cada una que contiene el emisor de certificados de un destinatario, SerialNumber y SubjectPublicKeyInfo. Esta matriz solo se puede usar para los destinatarios identificados por el emisor y el número de serie. Si rgpRecipients no es NULL, rgCmsRecipients debe ser NULL.
rgCmsRecipients
Opcional. Matriz de punteros a CMSG_RECIPIENT_ENCODE_INFO estructuras que contienen información del destinatario. Si rgCmsRecipients no es NULL, rgpRecipients debe ser NULL. CMSG_ENVELOPED_ENCODE_INFO_HAS_CMS_FIELDS debe definirse para hacer referencia a este campo.
cCertEncoded
Opcional. Valor DWORD que indica el número de certificados codificados en la matriz rgCertEncoded . CMSG_ENVELOPED_ENCODE_INFO_HAS_CMS_FIELDS debe definirse para hacer referencia a este campo.
rgCertEncoded
Opcional. Matriz de estructuras de CERT_BLOB . CMSG_ENVELOPED_ENCODE_INFO_HAS_CMS_FIELDS debe definirse para hacer referencia a este campo.
cCrlEncoded
Opcional. Valor DWORD que indica el número de listas de revocación de certificados codificadas (CRL) en la matriz rgCRLEncoded . CMSG_ENVELOPED_ENCODE_INFO_HAS_CMS_FIELDS debe definirse para hacer referencia a este campo.
rgCrlEncoded
Opcional. Matriz de estructuras de CRL_BLOB . CMSG_ENVELOPED_ENCODE_INFO_HAS_CMS_FIELDS debe definirse para hacer referencia a este campo.
cAttrCertEncoded
Opcional. Valor DWORD que indica el número de atributos de certificado codificados en la matriz rgAttrCertEncoded . CMSG_ENVELOPED_ENCODE_INFO_HAS_CMS_FIELDS debe definirse para hacer referencia a este campo.
rgAttrCertEncoded
Opcional. Matriz de estructuras de CRYPT_ATTRIBUTE . CMSG_ENVELOPED_ENCODE_INFO_HAS_CMS_FIELDS debe definirse para hacer referencia a este miembro.
cUnprotectedAttr
Opcional. Valor DWORD que indica el número de atributos no protegidos en la matriz rgUnprotectedAttr . CMSG_ENVELOPED_ENCODE_INFO_HAS_CMS_FIELDS debe definirse para hacer referencia a este campo.
rgUnprotectedAttr
Opcional. Matriz de estructuras de CRYPT_ATTRIBUTE . CMSG_ENVELOPED_ENCODE_INFO_HAS_CMS_FIELDS debe definirse para hacer referencia a este campo.
Requisitos
Cliente mínimo compatible | Windows XP [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows Server 2003 [solo aplicaciones de escritorio] |
Encabezado | wincrypt.h |