Função CryptMsgSignCTL (wincrypt.h)

A função CryptMsgSignCTL cria uma mensagem assinada que contém uma CTL codificada.

Sintaxe

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 o tipo de codificação usado. É sempre aceitável especificar os tipos de codificação de certificado e mensagem combinando-os com uma operação OR bit a bit, conforme mostrado no exemplo a seguir:

X509_ASN_ENCODING | PKCS_7_ASN_ENCODING

Os tipos de codificação definidos no momento são:

  • X509_ASN_ENCODING
  • PKCS_7_ASN_ENCODING

[in] pbCtlContent

O CTL_INFO codificado que pode ser membro de uma estrutura CTL_CONTEXT ou pode ser criado usando a função CryptEncodeObject .

[in] cbCtlContent

O tamanho, em bytes, do conteúdo apontado por pbCtlContent.

[in] pSignInfo

Um ponteiro para uma estrutura CMSG_SIGNED_ENCODE_INFO que contém uma matriz de estruturas de CMSG_SIGNER_ENCODE_INFO .

A mensagem poderá ser codificada sem signatários se o membro cbSize da estrutura estiver definido como o tamanho da estrutura e todos os outros membros estiverem definidos como zero.

[in] dwFlags

Se CMS_PKCS7 for definido, poderá ser definido como CMSG_CMS_ENCAPSULATED_CTL_FLAG para codificar uma mensagem SignedData V3 compatível com CMS.

[out] pbEncoded

Um ponteiro para um buffer para receber a mensagem codificada.

Esse parâmetro pode ser NULL para obter o tamanho dessas informações para fins de alocação de memória. Para obter mais informações, consulte Recuperando dados de comprimento desconhecido.

[in, out] pcbEncoded

Um ponteiro para um DWORD que especifica o tamanho, em bytes, do buffer pbEncoded . Quando a função retorna, o DWORD contém o número de bytes armazenados ou a serem armazenados no buffer.

Retornar valor

Se a função for bem-sucedida, o valor retornado será diferente de zero (TRUE).

Se a função falhar, o valor retornado será zero (FALSE). Para obter informações de erro estendidas, chame GetLastError. Essa função pode retornar erros propagados de chamadas para CryptMsgOpenToEncode e CryptMsgUpdate.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows XP [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2003 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho wincrypt.h
Biblioteca Crypt32.lib
DLL Crypt32.dll

Confira também

CMSG_SIGNED_ENCODE_INFO

CryptMsgEncodeAndSignCTL

Cryptmsgopentoencode

Funções de verificação usando CTLs