Função CryptGetMessageCertificates (wincrypt.h)

A função CryptGetMessageCertificates retorna o identificador de um repositório de certificados aberto que contém os certificados e CRLs da mensagem. Essa função chama CertOpenStore usando o tipo de provedor CERT_STORE_PROV_PKCS7 como seu parâmetro lpszStoreProvider .

Sintaxe

HCERTSTORE CryptGetMessageCertificates(
  [in] DWORD             dwMsgAndCertEncodingType,
  [in] HCRYPTPROV_LEGACY hCryptProv,
  [in] DWORD             dwFlags,
  [in] const BYTE        *pbSignedBlob,
  [in] DWORD             cbSignedBlob
);

Parâmetros

[in] dwMsgAndCertEncodingType

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] hCryptProv

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

Windows Server 2003 e Windows XP: Identificador do CSP passado para CertOpenStore. Para obter mais informações, consulte CertOpenStore. A menos que haja um motivo forte para passar um provedor criptográfico específico no hCryptProv, passe zero para fazer com que o provedor RSA ou DSS padrão seja adquirido.

O tipo de dados desse parâmetro é HCRYPTPROV.

[in] dwFlags

Sinalizadores passados para o CertOpenStore. Para obter mais informações, consulte CertOpenStore.

[in] pbSignedBlob

Um ponteiro para uma estrutura de CRYPT_INTEGER_BLOB em buffer que contém a mensagem assinada.

[in] cbSignedBlob

O tamanho, em bytes, da mensagem assinada.

Retornar valor

Retorna o repositório de certificados que contém os certificados e CRLs da mensagem. Para um erro, NULL é retornado.

O seguinte lista o código de erro mais comumente retornado pela função GetLastError .

Código de retorno Descrição
E_INVALIDARG
Tipos inválidos de codificação de mensagens e certificados. Atualmente, há suporte apenas para PKCS_7_ASN_ENCODING e X509_ASN_ENCODING.
 

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.

Comentários

Use GetLastError para determinar o motivo de erros.

Exemplos

Para obter um exemplo que usa essa função, consulte Exemplo de Programa C: Configurando e obtendo propriedades do repositório de certificados.

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

Confira também

CryptVerifyMessageSignature

Funções de mensagem simplificadas