Função CryptMsgCountersignEncoded (wincrypt.h)

A função CryptMsgCountersignEncoded contra-atribui uma assinatura de mensagem PKCS nº 7 existente. O buffer de BYTEpbCountersignature que ele cria é um SignerInfo codificado em PKCS nº 7 que pode ser usado como um atributo de Contrasignature não autenticado de uma mensagem PKCS #9 signed-data ou signed-and-enveloped-data.

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 contadores na matriz rgCountersigners .

[in] rgCountersigners

Matriz de estruturas de CMSG_SIGNER_ENCODE_INFO de contratributores.

[out] pbCountersignature

Um ponteiro para um buffer para receber um atributo de contra-atribuição 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 de 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 retornado

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.

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:

Se a função falhar, GetLastError poderá retornar um erro de codificação/decodificação de ASN.1 (Abstract Syntax Notation One ). Para obter informações sobre esses erros, consulte Codificação/Decodificação de Valores Retornados do ASN.1.

Requisitos

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

Confira também

CryptMsgCountersign

CryptMsgVerifyCountersignatureEncoded

Funções de mensagem de baixo nível

Funções de mensagem simplificadas