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 |
---|---|
|
A mensagem não contém um atributo autenticado esperado. |
|
O valor de hash não está correto. |
|
A mensagem não está codificada conforme o esperado. |
|
O algoritmo criptográfico é desconhecido. |
|
Um ou mais argumentos não são válidos. |
|
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 |