Compartilhar via


Função CryptMsgVerifyCountersignatureEncoded (wincrypt.h)

A função CryptMsgVerifyCountersignatureEncoded verifica uma contra-atribuição em termos da estrutura SignerInfo (conforme definido pelo PKCS nº 7).

Sintaxe

BOOL CryptMsgVerifyCountersignatureEncoded(
  [in] HCRYPTPROV_LEGACY hCryptProv,
  [in] DWORD             dwEncodingType,
  [in] PBYTE             pbSignerInfo,
  [in] DWORD             cbSignerInfo,
  [in] PBYTE             pbSignerInfoCountersignature,
  [in] DWORD             cbSignerInfoCountersignature,
  [in] PCERT_INFO        pciCountersigner
);

Parâmetros

[in] hCryptProv

Esse parâmetro não é usado e deve ser definido como NULL.

Windows Server 2003 e Windows XP: NULL ou o identificador do provedor criptográfico a ser usado para hash do campo encryptedDigest de pbSignerInfo. O tipo de dados desse parâmetro é HCRYPTPROV.

A menos que haja um motivo forte para passar um provedor criptográfico específico em hCryptProv, passe NULL para fazer com que o provedor RSA ou DSS padrão seja usado.

[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 BLOB codificado que contém o signatário do conteúdo de uma mensagem a ser contra-atribuída.

[in] cbSignerInfo

Contagem, em bytes, do BLOB codificado para o signatário do conteúdo.

[in] pbSignerInfoCountersignature

Um ponteiro para o BLOB codificado que contém as informações do contra-atribuídor.

[in] cbSignerInfoCountersignature

Conte, em bytes, do BLOB codificado para o contra-atribuídor da mensagem.

[in] pciCountersigner

Um ponteiro para um CERT_INFO que inclui com o emissor e o número de série do contra-atribuídor. Para obter mais informações, consulte Comentários.

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.

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_AUTH_ATTR_MISSING
A mensagem não contém um atributo autenticado esperado.
CRYPT_E_HASH_VALUE
O valor de hash não está correto.
CRYPT_E_UNEXPECTED_ENCODING
A mensagem não está codificada conforme o esperado.
CRYPT_E_UNKNOWN_ALGO
O algoritmo criptográfico é desconhecido.
E_INVALIDARG
Um ou mais argumentos não são válidos.
E_OUTOFMEMORY
Ficou sem memória.
 

Erros propagados das funções a seguir podem ser retornados.

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

Comentários

A verificação do contra-sinal é feita usando a estrutura SIGNERINFO do PKCS nº 7. A assinatura deve conter o hash criptografado do campo encryptedDigest de pbSignerInfo.

O emissor e o número de série do contra-sinal devem corresponder às informações do contra-sinal de pbSignerInfoCountersignature. Os únicos campos referenciados de pciCountersigner são SerialNumber, Issuer e SubjectPublicKeyInfo. O SubjectPublicKeyInfo é usado para acessar a chave pública usada para criptografar o hash do pciCountersigner , portanto, compare-o com o hash do pbSignerInfo.

Exemplos

Para obter um exemplo que usa essa função, consulte Exemplo de programa C: codificação e decodificação de uma mensagem contra-atribuída.

Requisitos

Requisito Valor
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

CryptMsgCountersignEncoded

Funções de mensagem de baixo nível

Funções de mensagem simplificadas