Função CryptGetTimeValidObject (wincrypt.h)

A função CryptGetTimeValidObject recupera uma CRL, uma resposta OCSP ou um objeto CTL válido dentro de um determinado contexto e hora.

Sintaxe

BOOL CryptGetTimeValidObject(
  [in]                LPCSTR                                  pszTimeValidOid,
  [in]                LPVOID                                  pvPara,
  [in]                PCCERT_CONTEXT                          pIssuer,
  [in, optional]      LPFILETIME                              pftValidFor,
  [in]                DWORD                                   dwFlags,
  [in]                DWORD                                   dwTimeout,
  [out, optional]     LPVOID                                  *ppvObject,
  [in, optional]      PCRYPT_CREDENTIALS                      pCredentials,
  [in, out, optional] PCRYPT_GET_TIME_VALID_OBJECT_EXTRA_INFO pExtraInfo
);

Parâmetros

[in] pszTimeValidOid

Um ponteiro para um OID (identificador de objeto ) que identifica o objeto que está sendo solicitado. Se a HIWORD do parâmetro pszTimeValidOid for zero, LOWORD especificará o identificador inteiro para o tipo da estrutura especificada.

Esse parâmetro pode usar um dos valores a seguir. Para obter informações sobre como esses valores afetam o parâmetro pvPara, consulte o título "Para o parâmetro pvPara" na coluna Meaning.

Valor Significado
TIME_VALID_OID_GET_CTL
((LPCSTR)1)
Fornece uma CTL (lista de confiança de certificado) com base em uma URL obtida da propriedade NextUpdateLocation ou da extensão do contexto CTL atual.

Para o parâmetro pvPara: um ponteiro para um PCCTL_CONTEXT que representa a lista de confiança do certificado atual.

TIME_VALID_OID_GET_CRL
Este valor está reservado para uso futuro.
TIME_VALID_OID_GET_CRL_FROM_CERT
((LPCSTR)3)
Fornece uma CRL com base nas informações obtidas da extensão de pontos de distribuição crl do contexto de certificado atual.

Para o parâmetro pvPara: um ponteiro para um PCCERT_CONTEXT que representa o certificado da entidade.

TIME_VALID_OID_GET_FRESHEST_CRL_FROM_CERT
((LPCSTR)4)
Fornece uma CRL delta com base nas informações obtidas da extensão de CRL mais recente do contexto de certificado atual.

Para o parâmetro pvPara: um ponteiro para um PCCERT_CONTEXT que representa o certificado da entidade.

TIME_VALID_OID_GET_FRESHEST_CRL_FROM_CRL
((LPCSTR)5)
Fornece uma CRL delta com base nas informações obtidas da extensão de CRL mais recente do contexto de CRL atual.

Para o parâmetro pvPara: um ponteiro para um PCCERT_CRL_CONTEXT_PAIR que representa o certificado da entidade e sua CRL base.

[in] pvPara

Uma estrutura determinada pelo valor de pszTimeValidOid. Para obter detalhes, consulte a descrição do parâmetro pszTimeValidOid .

[in] pIssuer

Um ponteiro para um CERT_CONTEXT que contém o certificado do emissor.

[in, optional] pftValidFor

Um ponteiro para uma versão opcional da estrutura FILETIME da hora atual do sistema ou um tempo de atualização do contexto atual.

[in] dwFlags

Um valor que determina vários fatores de recuperação, como tempo limite, origem e verificações de validade.

A tabela a seguir lista os valores possíveis para o parâmetro dwFlags .

Valor Significado
CRYPT_ACCUMULATIVE_TIMEOUT
0x00000800
Use a configuração de registro de tempo limite cumulativo do computador cliente para recuperações de URL de revogação.
CRYPT_CACHE_ONLY_RETRIEVAL
0x00000002
Recupere os bits codificados somente do cache de URL do cliente. Não use o fio para recuperar a URL.
CRYPT_CHECK_FRESHNESS_TIME_VALIDITY
0x00000400
Verifique se a propriedade ThisUpdate ou a extensão do contexto atual é maior ou igual ao parâmetro ftValidFor .
CRYPT_DONT_CHECK_TIME_VALIDITY
0x00000200
Não execute marcar de validade de tempo. Use isso para recuperar uma CRL base mais recente sobre a transmissão ou para ignorar a validade do tempo marcar durante uma recuperação de cache. Quando esse sinalizador é definido, pftValidFor pode ser NULL.
CRYPT_DONT_VERIFY_SIGNATURE
0x00000100
Não execute a verificação de assinatura. Use isso quando a verificação do objeto recuperado for executada fora dessa função ou para forçar uma substituição de uma entrada de cache recuperada por uma nova entrada de cache para o objeto.
CRYPT_KEEP_TIME_VALID
0x00000080
Este valor está reservado para uso futuro.
CRYPT_OCSP_ONLY_RETRIEVAL
0x01000000
Recupera o objeto de tempo válido de um serviço respondente OCSP somente com base nas URLs de Acesso às Informações da Autoridade no contexto atual. A função CertVerifyRevocation define esse sinalizador quando ele é chamado com o parâmetro dwFlags definido como CERT_VERIFY_REV_SERVER_OCSP_FLAG.
CRYPT_WIRE_ONLY_RETRIEVAL
0x00000004
Recupera os bits codificados somente do fio. Não usa o cache de URL.

[in] dwTimeout

Um valor, em milissegundos, que especifica quando encerrar uma tentativa de recuperação de URL que não retornou um resultado.

[out, optional] ppvObject

Um ponteiro para um endereço para o objeto retornado. O tipo de retorno pode ser um dos tipos com suporte mostrados no parâmetro pszObjectOid da função CryptRetrieveObjectByUrl .

[in, optional] pCredentials

Um ponteiro para uma estrutura de CRYPT_CREDENTIALS opcional usada para acessar a URL. O único tipo de credenciais com suporte no momento são credenciais de nome de usuário e senha.

[in, out, optional] pExtraInfo

Um ponteiro para uma estrutura de CRYPT_GET_TIME_VALID_OBJECT_EXTRA_INFO opcional que contém informações extras sobre a entrada de cache de um objeto .

Retornar valor

Se a função for bem-sucedida, a função retornará TRUE.

Se a função falhar, ela retornará FALSE. Para obter informações de erro estendidas, chame GetLastError.

Alguns códigos de erro possíveis seguem.

Código de retorno Descrição
CRYPT_E_NOT_FOUND
O chamador especificou TIME_VALID_OID_GET_CRL para o parâmetro pszTimeValidOid . Não há suporte para essa OID.
CRYPT_E_NOT_IN_REVOCATION_DATABASE
O chamador define o sinalizador CRYPT_OCSP_ONLY_RETRIEVAL e o contexto inclui uma URL não OCSP.
E_INVALIDARG
A função não conseguiu recuperar uma CRL de um contexto de certificado ou recuperar uma CTL e não conseguiu copiar nenhuma URL de uma entrada de cache.
E_OUTOFMEMORY
A função não pôde alocar memória para uma operação de matriz interna.
ERROR_NOT_CONNECTED
O chamador não definiu o sinalizador CRYPT_CACHE_ONLY_RETRIEVAL e não está conectado à Internet.

Comentários

A biblioteca de link dinâmico Cryptnet implementa um cache tvo (objeto válido por tempo) que é usado para dar suporte à função CryptGetTimeValidObject . O cache é usado por um agente de TVO global de processo em que cada entrada de cache consiste nas informações a seguir.

  • Identificador de origem
  • OID de contexto
  • Contexto
  • URL de recuperação
  • Tempo de Expiração
  • Informações de tempo de URL offline
O agente TVO dá suporte à recuperação de objetos TVO sob demanda ou por atualização automática.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows Vista [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2008 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho wincrypt.h
Biblioteca Cryptnet.lib
DLL Cryptnet.dll