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 為零,LOWORD 會指定指定結構類型的整數識別碼。
此參數可以是下列其中一個值。 如需這些值如何影響 pvPara 參數的資訊,請參閱 [意義] 資料行中的標題“For the pvPara parameter”。
值 | 意義 |
---|---|
|
根據從目前 CTL 內容的 NextUpdateLocation 屬性或延伸模組取得的 URL,提供憑證信任清單 (CTL) 。
針對 pvPara 參數:代表目前憑證信任清單 之PCCTL_CONTEXT 的指標。 |
|
這個值已保留供未來使用 |
|
根據從目前憑證內容之 CRL 發佈點延伸取得的資訊,提供 CRL。
針對 pvPara 參數:代表主體憑證 之PCCERT_CONTEXT 的指標。 |
|
根據從目前憑證內容的最新CRL延伸模組取得的資訊,提供差異CRL。
針對 pvPara 參數:代表主體憑證 之PCCERT_CONTEXT 的指標。 |
|
根據從目前 CRL 內容的最新 CRL 延伸模組取得的資訊,提供差異 CRL。
針對 pvPara 參數:代表主體憑證及其基底 CRL 之PCCERT_CRL_CONTEXT_PAIR 的指標。 |
[in] pvPara
由 pszTimeValidOid 值決定的結構。 如需詳細資訊,請參閱 pszTimeValidOid 參數的描述。
[in] pIssuer
包含簽發者憑證 之CERT_CONTEXT 的指標。
[in, optional] pftValidFor
目前系統時間選擇性 FILETIME 結構版本的指標,或目前內容的全新時間。
[in] dwFlags
值,決定各種擷取因素,例如逾時、來源和有效性檢查。
下表列出 dwFlags 參數的可能值。
值 | 意義 |
---|---|
|
使用用戶端電腦的累積逾時登錄設定來撤銷 URL 擷取。 |
|
只從用戶端 URL 快取擷取編碼位。 請勿使用網路來擷取 URL。 |
|
檢查目前內容的 ThisUpdate 屬性或延伸是否大於或等於 ftValidFor 參數。 |
|
請勿執行時間有效性檢查。 使用此選項可透過網路擷取較新的基底CRL,或略過快取擷取期間的時間有效性檢查。 設定此旗標時, pftValidFor 可以是 NULL。 |
|
請勿執行簽章驗證。 當驗證擷取的物件將在此函式外部執行,或強制取代已擷取的快取專案與物件的新快取專案時,請使用這個方法。 |
|
這個值已保留供未來使用 |
|
僅根據目前內容中的授權單位資訊存取 URL,從 OCSP 回應程式服務擷取有效的時間物件。 當呼叫時, CertVerifyRevocation 函式會將 dwFlags 參數設定為 CERT_VERIFY_REV_SERVER_OCSP_FLAG 時設定此旗標。 |
|
只從線路擷取編碼位。 不使用 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。
以下是一些可能的錯誤碼。
傳回碼 | Description |
---|---|
|
針對 pszTimeValidOid 參數指定的呼叫端TIME_VALID_OID_GET_CRL。 不支援此 OID。 |
|
呼叫端會設定CRYPT_OCSP_ONLY_RETRIEVAL旗標,而內容包含非 OCSP URL。 |
|
函式無法從憑證內容擷取CRL或擷取 CTL,而且無法從快取項目複製任何URL。 |
|
函式無法為內部數位作業配置記憶體。 |
|
呼叫端未設定 CRYPT_CACHE_ONLY_RETRIEVAL 旗標,且未連線到因特網。 |
備註
Cryptnet 動態連結庫會實作時間有效的物件 (TVO) 快取,用來支援 CryptGetTimeValidObject 函式。 快取是由進程全域 TVO 代理程式使用,其中每個快取專案都包含下列資訊。
- 原始標識碼
- 內容 OID
- Context
- 擷取
- 到期時間
- 離線 URL 時間資訊
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows Vista [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2008 [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | wincrypt.h |
程式庫 | Cryptnet.lib |
Dll | Cryptnet.dll |