Función CryptMsgEncodeAndSignCTL (wincrypt.h)
La función CryptMsgEncodeAndSignCTL codifica un CTL y crea un mensaje firmado que contiene el CTL codificado.
Esta función codifica primero el CTL al que apunta pCtlInfo y, a continuación, llama a CryptMsgSignCTL para firmar el mensaje codificado.
Sintaxis
BOOL CryptMsgEncodeAndSignCTL(
[in] DWORD dwMsgEncodingType,
[in] PCTL_INFO pCtlInfo,
[in] PCMSG_SIGNED_ENCODE_INFO pSignInfo,
[in] DWORD dwFlags,
[out] BYTE *pbEncoded,
[in, out] DWORD *pcbEncoded
);
Parámetros
[in] dwMsgEncodingType
Especifica el tipo de codificación usado. Siempre es aceptable especificar los tipos de codificación de certificados y mensajes al combinarlos con una operación OR bit a bit, como se muestra en el ejemplo siguiente:
X509_ASN_ENCODING | PKCS_7_ASN_ENCODING
Los tipos de codificación definidos actualmente son:
- X509_ASN_ENCODING
- PKCS_7_ASN_ENCODING
[in] pCtlInfo
Puntero a la estructura de CTL_INFO que contiene el CTL que se va a codificar y firmar.
[in] pSignInfo
Puntero a una estructura de CMSG_SIGNED_ENCODE_INFO que contiene una matriz de estructuras de CMSG_SIGNER_ENCODE_INFO .
El mensaje se puede codificar sin firmantes si el miembro cbSize de la estructura se establece en el tamaño de la estructura y todos los demás miembros se establecen en cero.
[in] dwFlags
CMSG_ENCODE_SORTED_CTL_FLAG se establece si las entradas de CTL se van a ordenar antes de codificar. Esta marca se establece si se llamará a las funciones CertFindSubjectInSortedCTL o CertEnumSubjectInSortedCTL .
CMSG_ENCODE_HASHED_SUBJECT_IDENTIFIER_FLAG se establece si se establece CMSG_ENCODE_SORTED_CTL_FLAG y el identificador de TrustedSubjects es un hash, como MD5 o SHA1.
Si se define CMS_PKCS7, dwFlags se puede establecer en CMSG_CMS_ENCAPSULATED_CTL_FLAG para codificar un mensaje SignedData compatible con CMS.
[out] pbEncoded
Puntero a un búfer que recibe el mensaje codificado y firmado creado.
Este parámetro puede ser NULL para establecer el tamaño de esta información con fines de asignación de memoria. Para obtener más información, vea Recuperar datos de longitud desconocida.
[in, out] pcbEncoded
Puntero a un DWORD que especifica el tamaño, en bytes, del búfer pbEncoded . Cuando la función devuelve, DWORD contiene el número de bytes almacenados o que se almacenarán en el búfer.
Valor devuelto
Si la función se ejecuta correctamente, el valor devuelto es distinto de cero (TRUE).
Si se produce un error en la función, el valor devuelto es cero (FALSE). Para obtener información de error extendida, llame a GetLastError. Los errores se pueden propagar desde llamadas a CryptMsgOpenToEncode y CryptMsgUpdate.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows XP [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows Server 2003 [solo aplicaciones de escritorio] |
Plataforma de destino | Windows |
Encabezado | wincrypt.h |
Library | Crypt32.lib |
Archivo DLL | Crypt32.dll |