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 パラメーターにどのように影響するかについては、「意味」列の「pvPara パラメーターの場合」という見出しを参照してください。
値 | 意味 |
---|---|
|
NextUpdateLocation プロパティまたは現在の CTL コンテキストの拡張から取得した 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 を呼び出します。
考えられるエラー コードの一部を次に示します。
リターン コード | 説明 |
---|---|
|
呼び出し元が pszTimeValidOid パラメーターにTIME_VALID_OID_GET_CRL指定しました。 この OID はサポートされていません。 |
|
呼び出し元はCRYPT_OCSP_ONLY_RETRIEVAL フラグを設定し、コンテキストには OCSP 以外の URL が含まれています。 |
|
この関数は、証明書コンテキストから CRL を取得したり、CTL を取得したりできませんでした。また、キャッシュ エントリから URL をコピーできませんでした。 |
|
関数は、内部配列操作にメモリを割り当てませんでした。 |
|
呼び出し元が CRYPT_CACHE_ONLY_RETRIEVAL フラグを設定しておらず、インターネットに接続されていません。 |
注釈
Cryptnet ダイナミック リンク ライブラリは、 CryptGetTimeValidObject 関数をサポートするために使用される時間有効なオブジェクト (TVO) キャッシュを実装します。 キャッシュは、各キャッシュ エントリが次の情報で構成されるプロセス グローバル TVO エージェントによって使用されます。
- 配信元識別子
- コンテキスト OID
- Context
- 取得 URL
- 有効期限
- オフライン URL 時刻情報
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2008 [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | wincrypt.h |
Library | Cryptnet.lib |
[DLL] | Cryptnet.dll |