Função CertVerifySubjectCertificateContext (wincrypt.h)

A função CertVerifySubjectCertificateContext executa as verificações de verificação habilitadas em um certificado verificando a validade do emissor do certificado. As novas funções de verificação de cadeia de certificados são recomendadas em vez dessa função.

Sintaxe

BOOL CertVerifySubjectCertificateContext(
  [in]           PCCERT_CONTEXT pSubject,
  [in, optional] PCCERT_CONTEXT pIssuer,
  [in, out]      DWORD          *pdwFlags
);

Parâmetros

[in] pSubject

Um ponteiro para uma estrutura CERT_CONTEXT que contém o certificado da entidade.

[in, optional] pIssuer

Um ponteiro para um CERT_CONTEXT que contém o certificado do emissor. Ao verificar apenas CERT_STORE_TIME_VALIDITY_FLAG, pIssuer pode ser NULL.

[in, out] pdwFlags

Um ponteiro para um valor DWORD contém sinalizadores de marcar de verificação. Os sinalizadores a seguir podem ser definidos para habilitar verificações no certificado do assunto. Eles podem ser combinados usando uma operação OR bit a bit para habilitar várias verificações.

Valor Significado
CERT_STORE_REVOCATION_FLAG
Verifica se o certificado de entidade está na lista de revogação do emissor.
CERT_STORE_SIGNATURE_FLAG
Usa a chave pública no certificado do emissor para verificar a assinatura no certificado do assunto.
CERT_STORE_TIME_VALIDITY_FLAG
Obtém a hora atual e verifica se ela está dentro do período de validade do certificado da entidade.
 

Se uma verificação habilitada marcar for bem-sucedida, seu sinalizador será definido como zero. Se falhar, seu sinalizador será definido no retorno.

Se CERT_STORE_REVOCATION_FLAG estiver habilitado e o emissor não tiver uma CRL no repositório, CERT_STORE_NO_CRL_FLAG será definido além de CERT_STORE_REVOCATION_FLAG.

Retornar valor

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

Se a função falhar, o valor retornado será FALSE.

Para uma falha de marcar de verificação, TRUE ainda é retornado. FALSE é retornado somente quando um parâmetro inválido é passado.

Para obter informações de erro estendidas, chame GetLastError. Um código de erro possível é o seguinte.

Código de retorno Descrição
E_INVALIDARG
Um bit sem suporte foi definido em pdwFlags. Qualquer combinação de CERT_STORE_SIGNATURE_FLAG, CERT_STORE_TIME_VALIDITY_FLAG e CERT_STORE_REVOCATION_FLAG pode ser definida. Se pIssuer for NULL, somente CERT_STORE_TIME_VALIDITY_FLAG poderá ser definido.

Comentários

O valor hexadecimal dos sinalizadores pode ser combinado usando operações OR bit a bit para habilitar várias verificações. Por exemplo, para habilitar a validade da assinatura e da hora, o valor

CERT_STORE_SIGNATURE_FLAG | CERT_STORE_TIME_VALIDITY_FLAG

é colocado no valor DWORD pdwFlags como um parâmetro de entrada. Se CERT_STORE_SIGNATURE_FLAG verificação for bem-sucedida, mas CERT_STORE_TIME_VALIDITY_FLAG verificação falhar, pdwFlags será definido como CERT_STORE_TIME_VALIDITY_FLAG quando a função retornar.

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

CERT_CONTEXT

CertGetIssuerCertificateFromStore

Funções de certificado