Share via


CryptGetTimeValidObject 함수(wincrypt.h)

CryptGetTimeValidObject 함수는 지정된 컨텍스트 및 시간 내에 유효한 CRL, OCSP 응답 또는 CTL 개체를 검색합니다.

구문

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
);

매개 변수

[in] pszTimeValidOid

요청되는 개체를 식별하는 OID(개체 식별자 )에 대한 포인터입니다. pszTimeValidOid 매개 변수의 HIWORD가 0이면 LOWORD는 지정된 구조체의 형식에 대한 정수 식별자를 지정합니다.

이 매개 변수는 다음 값 중 하나일 수 있습니다. 이러한 값이 pvPara 매개 변수에 미치는 영향에 대한 자세한 내용은 의미 열의 "For the pvPara parameter" 제목을 참조하세요.

의미
TIME_VALID_OID_GET_CTL
((LPCSTR)1)
NextUpdateLocation 속성 또는 현재 CTL 컨텍스트의 확장에서 가져온 URL을 기반으로 CTL(인증서 신뢰 목록)을 제공합니다.

pvPara 매개 변수의 경우: 현재 인증서 신뢰 목록을 나타내는 PCCTL_CONTEXT 대한 포인터입니다.

TIME_VALID_OID_GET_CRL
이 값은 나중에 사용할 수 있도록 예약되었습니다.
TIME_VALID_OID_GET_CRL_FROM_CERT
((LPCSTR)3)
현재 인증서 컨텍스트의 CRL 배포 지점 확장에서 얻은 정보를 기반으로 CRL을 제공합니다.

pvPara 매개 변수의 경우: 주체 인증서를 나타내는 PCCERT_CONTEXT 대한 포인터입니다.

TIME_VALID_OID_GET_FRESHEST_CRL_FROM_CERT
((LPCSTR)4)
현재 인증서 컨텍스트의 최신 CRL 확장에서 얻은 정보를 기반으로 델타 CRL을 제공합니다.

pvPara 매개 변수의 경우: 주체 인증서를 나타내는 PCCERT_CONTEXT 대한 포인터입니다.

TIME_VALID_OID_GET_FRESHEST_CRL_FROM_CRL
((LPCSTR)5)
현재 CRL 컨텍스트의 최신 CRL 확장에서 얻은 정보를 기반으로 델타 CRL을 제공합니다.

pvPara 매개 변수의 경우: 주체 인증서 및 기본 CRL을 나타내는 PCCERT_CRL_CONTEXT_PAIR 대한 포인터입니다.

[in] pvPara

pszTimeValidOid 값으로 결정되는 구조체입니다. 자세한 내용은 pszTimeValidOid 매개 변수에 대한 설명을 참조하세요.

[in] pIssuer

발급자의 인증서를 포함하는 CERT_CONTEXT 대한 포인터입니다.

[in, optional] pftValidFor

현재 시스템 시간의 선택적 FILETIME 구조 버전 또는 현재 컨텍스트의 새로 고침 시간에 대한 포인터입니다.

[in] dwFlags

시간 제한, 원본 및 유효성 검사와 같은 다양한 검색 요소를 결정하는 값입니다.

다음 표에서는 dwFlags 매개 변수에 대해 가능한 값을 나열합니다.

의미
CRYPT_ACCUMULATIVE_TIMEOUT
0x00000800
해지 URL 검색을 위해 클라이언트 컴퓨터의 누적 시간 제한 레지스트리 설정을 사용합니다.
CRYPT_CACHE_ONLY_RETRIEVAL
0x00000002
클라이언트 URL 캐시에서만 인코딩된 비트를 검색합니다. 유선을 사용하여 URL을 검색하지 마세요.
CRYPT_CHECK_FRESHNESS_TIME_VALIDITY
0x00000400
현재 컨텍스트의 ThisUpdate 속성 또는 확장이 ftValidFor 매개 변수보다 크거나 같은지 확인합니다.
CRYPT_DONT_CHECK_TIME_VALIDITY
0x00000200
시간 유효성 검사 수행하지 마세요. 이를 사용하여 와이어를 통해 최신 기본 CRL을 검색하거나 캐시 검색 중에 시간 유효성 검사 무시합니다. 이 플래그가 설정되면 pftValidForNULL일 수 있습니다.
CRYPT_DONT_VERIFY_SIGNATURE
0x00000100
서명 확인을 수행하지 마세요. 검색된 개체의 확인이 이 함수 외부에서 수행되거나 검색된 캐시 항목을 개체에 대한 새 캐시 항목으로 강제로 교체할 때 사용합니다.
CRYPT_KEEP_TIME_VALID
0x00000080
이 값은 나중에 사용할 수 있도록 예약되었습니다.
CRYPT_OCSP_ONLY_RETRIEVAL
0x01000000
현재 컨텍스트의 기관 정보 액세스 URL에 따라 OCSP 응답기 서비스에서 유효한 시간 개체를 검색합니다. CertVerifyRevocation 함수는 dwFlags 매개 변수가 CERT_VERIFY_REV_SERVER_OCSP_FLAG 설정된 상태에서 호출될 때 이 플래그를 설정합니다.
CRYPT_WIRE_ONLY_RETRIEVAL
0x00000004
와이어에서만 인코딩된 비트를 검색합니다. URL 캐시를 사용하지 않습니다.

[in] dwTimeout

결과를 반환하지 않은 URL 검색 시도를 종료할 시기를 지정하는 값(밀리초)입니다.

[out, optional] ppvObject

반환된 개체의 주소에 대한 포인터입니다. 반환 형식은 CryptRetrieveObjectByUrl 함수의 pszObjectOid 매개 변수에 표시된 지원되는 형식 중 하나일 수 있습니다.

[in, optional] pCredentials

URL에 액세스하는 데 사용되는 선택적 CRYPT_CREDENTIALS 구조체에 대한 포인터입니다. 현재 지원되는 자격 증명 유형은 사용자 이름 및 암호 자격 증명뿐입니다.

[in, out, optional] pExtraInfo

개체의 캐시 항목에 대한 추가 정보를 포함하는 선택적 CRYPT_GET_TIME_VALID_OBJECT_EXTRA_INFO 구조체에 대한 포인터입니다.

반환 값

함수가 성공하면 함수는 TRUE를 반환 합니다.

함수가 실패하면 FALSE를 반환합니다. 확장 오류 정보는 GetLastError를 호출합니다.

몇 가지 가능한 오류 코드는 다음과 같습니다.

반환 코드 설명
CRYPT_E_NOT_FOUND
pszTimeValidOid 매개 변수에 대한 TIME_VALID_OID_GET_CRL 지정한 호출자입니다. 이 OID는 지원되지 않습니다.
CRYPT_E_NOT_IN_REVOCATION_DATABASE
호출자는 CRYPT_OCSP_ONLY_RETRIEVAL 플래그를 설정하고 컨텍스트에는 비 OCSP URL이 포함됩니다.
E_INVALIDARG
함수가 인증서 컨텍스트에서 CRL을 검색하거나 CTL을 검색하지 못했으며 캐시 항목에서 URL을 복사하지 못했습니다.
E_OUTOFMEMORY
함수가 내부 배열 작업에 메모리를 할당할 수 없습니다.
ERROR_NOT_CONNECTED
호출자가 CRYPT_CACHE_ONLY_RETRIEVAL 플래그를 설정하지 않았으며 인터넷에 연결되어 있지 않습니다.

설명

Cryptnet 동적 링크 라이브러리는 CryptGetTimeValidObject 함수를 지원하는 데 사용되는 TVO(시간 유효한 개체) 캐시를 구현합니다. 캐시는 각 캐시 항목이 다음 정보로 구성된 프로세스 글로벌 TVO 에이전트에서 사용됩니다.

  • 원본 식별자
  • 컨텍스트 OID
  • Context
  • 검색 URL
  • 만료 시간
  • 오프라인 URL 시간 정보
TVO 에이전트는 주문형 또는 자동 업데이트로 TVO 개체 검색을 지원합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Vista [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2008 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 wincrypt.h
라이브러리 Cryptnet.lib
DLL Cryptnet.dll