Compartilhar via


Função CryptMsgCountersignEncoded (wincrypt.h)

A função CryptMsgCountersignEncoded contra-atribui uma assinatura de mensagem PKCS #7 existente. O buffer bytepbCountersignature que ele cria é um SignerInfo codificado em PKCS #7 que pode ser usado como uma mensagem de dados assinados não autenticados de um PKCS #9 com dados assinados ou de dados assinados e enveloped.

Sintaxe

BOOL CryptMsgCountersignEncoded(
  [in]      DWORD                    dwEncodingType,
  [in]      PBYTE                    pbSignerInfo,
  [in]      DWORD                    cbSignerInfo,
  [in]      DWORD                    cCountersigners,
  [in]      PCMSG_SIGNER_ENCODE_INFO rgCountersigners,
  [out]     PBYTE                    pbCountersignature,
  [in, out] PDWORD                   pcbCountersignature
);

Parâmetros

[in] dwEncodingType

Especifica o tipo de codificação usado. Atualmente, apenas X509_ASN_ENCODING e PKCS_7_ASN_ENCODING estão sendo usados; no entanto, tipos de codificação adicionais podem ser adicionados no futuro. Para qualquer tipo de codificação atual, use:

X509_ASN_ENCODING | PKCS_7_ASN_ENCODING.

[in] pbSignerInfo

Um ponteiro para o SignerInfo codificado que deve ser contra-atribuído.

[in] cbSignerInfo

Contagem, em bytes, dos dados SignerInfo codificados.

[in] cCountersigners

Número de contra-atribuidores na matriz de rgCountersigners .

[in] rgCountersigners

Matriz de estruturas de CMSG_SIGNER_ENCODE_INFO de contrasigners.

[out] pbCountersignature

Um ponteiro para um buffer para receber um atributo de de PKCS nº 9 codificado.

Na entrada, 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 dede comprimento desconhecido.

[in, out] pcbCountersignature

Um ponteiro para uma variável que especifica o tamanho, em bytes, do buffer apontado pelo parâmetro pbCountersignature. Quando a função retorna, a variável apontada pelo parâmetro pcbCountersignature contém o número de bytes armazenados no buffer.

Valor de retorno

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

Se a função falhar, o valor retornado será zero (false). Para obter informações de erro estendidas, chame GetLastError.

A tabela a seguir lista os códigos de erro mais comumente retornados pela função GetLastError.

Código de retorno Descrição
CRYPT_E_OID_FORMAT
O identificador de objeto está mal formatado.
E_INVALIDARG
Um ou mais argumentos não são válidos.
E_OUTOFMEMORY
Ficou sem memória.
 

Erros propagados podem ser retornados de uma das seguintes funções:

  • CryptCreateHash
  • CryptHashData
  • CryptGetHashParam
  • CryptSignHash
  • CryptMsgOpenToEncode
  • CryptMsgUpdate
  • CryptMsgControl
Se a função falhar, GetLastError poderá retornar um erro de codificação/decodificação de de Sintaxe Abstrata um (ASN.1). Para obter informações sobre esses erros, consulte Valores de Retorno de Codificação/Decodificação do ASN.1.

Requisitos

Requisito Valor
de cliente com suporte mínimo Windows XP [aplicativos da área de trabalho | Aplicativos UWP]
servidor com suporte mínimo Windows Server 2003 [aplicativos da área de trabalho | Aplicativos UWP]
da Plataforma de Destino Windows
cabeçalho wincrypt.h
biblioteca Crypt32.lib
de DLL Crypt32.dll

Consulte também

CryptMsgCountersign

CryptMsgVerifyCountersignatureEncoded

funções de mensagem de baixo nível

Funções de Mensagem Simplificadas