Función CryptMsgSignCTL (wincrypt.h)

La función CryptMsgSignCTL crea un mensaje firmado que contiene un CTL codificado.

Sintaxis

BOOL CryptMsgSignCTL(
  [in]      DWORD                    dwMsgEncodingType,
  [in]      BYTE                     *pbCtlContent,
  [in]      DWORD                    cbCtlContent,
  [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 utilizado. Siempre es aceptable especificar los tipos de codificación de certificados y mensajes mediante su combinación 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] pbCtlContent

El CTL_INFO codificado que puede ser miembro de una estructura de CTL_CONTEXT o se puede crear mediante la función CryptEncodeObject .

[in] cbCtlContent

Tamaño, en bytes, del contenido al que apunta pbCtlContent.

[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

Si se define CMS_PKCS7, se puede establecer en CMSG_CMS_ENCAPSULATED_CTL_FLAG para codificar un mensaje SignedData compatible con CMS.

[out] pbEncoded

Puntero a un búfer para recibir el mensaje codificado.

Este parámetro puede ser NULL para obtener el tamaño de esta información con fines de asignación de memoria. Para obtener más información, vea Recuperación de datos de longitud desconocida.

[in, out] pcbEncoded

Puntero a un DWORD que especifica el tamaño, en bytes, del búfer pbEncoded . Cuando se devuelve la función, 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. Esta función puede devolver errores propagados 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

CryptMsgEncodeAndSignCTL

CryptMsgOpenToEncode

Funciones de comprobación mediante CTL