Função CryptMsgEncodeAndSignCTL (wincrypt.h)
A função CryptMsgEncodeAndSignCTL codifica uma CTL e cria uma mensagem assinada que contém a CTL codificada.
Essa função codifica primeiro a CTL apontada por pCtlInfo e, em seguida, chama CryptMsgSignCTL para assinar a mensagem codificada.
Sintaxe
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 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] pCtlInfo
Um ponteiro para a estrutura CTL_INFO que contém a CTL a ser codificada e assinada.
[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 forem definidos como zero.
[in] dwFlags
CMSG_ENCODE_SORTED_CTL_FLAG será definido se as entradas CTL devem ser classificadas antes da codificação. Esse sinalizador será definido se as funções CertFindSubjectInSortedCTL ou CertEnumSubjectInSortedCTL forem chamadas.
CMSG_ENCODE_HASHED_SUBJECT_IDENTIFIER_FLAG será definido se CMSG_ENCODE_SORTED_CTL_FLAG estiver definido e o identificador para TrustedSubjects for um hash, como MD5 ou SHA1.
Se CMS_PKCS7 for definido, dwFlags poderá ser definido como CMSG_CMS_ENCAPSULATED_CTL_FLAG para codificar uma mensagem V3 SignedData compatível com CMS.
[out] pbEncoded
Um ponteiro para um buffer que recebe a mensagem codificada e assinada criada.
Esse parâmetro pode ser NULL para definir 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. Erros podem ser 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 |