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

Consulte también

CMSG_SIGNED_ENCODE_INFO

CTL_INFO

CertEnumSubjectInSortedCTL

CertFindSubjectInSortedCTL

CryptMsgOpenToEncode

CryptMsgSignCTL

Funciones de comprobación mediante CTL