Fungsi CryptGetTimeValidObject (wincrypt.h)

Fungsi CryptGetTimeValidObject mengambil objek CRL, respons OCSP, atau CTL yang valid dalam konteks dan waktu tertentu.

Sintaksis

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

Parameter

[in] pszTimeValidOid

Penunjuk ke pengidentifikasi objek (OID) yang mengidentifikasi objek yang diminta. Jika HIWORD dari parameter pszTimeValidOid adalah nol, LOWORD menentukan pengidentifikasi bilangan bulat untuk jenis struktur yang ditentukan.

Parameter ini bisa menjadi salah satu nilai berikut. Untuk informasi tentang bagaimana nilai-nilai ini memengaruhi parameter pvPara, lihat judul "Untuk parameter pvPara" di kolom Arti.

Nilai Arti
TIME_VALID_OID_GET_CTL
((LPCSTR)1)
Menyediakan daftar kepercayaan sertifikat (CTL) berdasarkan URL yang diperoleh dari properti NextUpdateLocation atau ekstensi konteks CTL saat ini.

Untuk parameter pvPara: Penunjuk ke PCCTL_CONTEXT yang mewakili daftar kepercayaan sertifikat saat ini.

TIME_VALID_OID_GET_CRL
Nilai ini dicadangkan untuk digunakan di masa mendatang.
TIME_VALID_OID_GET_CRL_FROM_CERT
((LPCSTR)3)
Menyediakan CRL berdasarkan informasi yang diperoleh dari ekstensi titik distribusi CRL dari konteks sertifikat saat ini.

Untuk parameter pvPara: Pointer ke PCCERT_CONTEXT yang mewakili sertifikat subjek.

TIME_VALID_OID_GET_FRESHEST_CRL_FROM_CERT
((LPCSTR)4)
Menyediakan CRL delta berdasarkan informasi yang diperoleh dari ekstensi CRL terbaru dari konteks sertifikat saat ini.

Untuk parameter pvPara: Pointer ke PCCERT_CONTEXT yang mewakili sertifikat subjek.

TIME_VALID_OID_GET_FRESHEST_CRL_FROM_CRL
((LPCSTR)5)
Menyediakan CRL delta berdasarkan informasi yang diperoleh dari ekstensi CRL terbaru dari konteks CRL saat ini.

Untuk parameter pvPara: Pointer ke PCCERT_CRL_CONTEXT_PAIR yang mewakili sertifikat subjek dan CRL dasarnya.

[in] pvPara

Struktur yang ditentukan oleh nilai pszTimeValidOid. Untuk detailnya, lihat deskripsi untuk parameter pszTimeValidOid.

[in] pIssuer

Pointer ke CERT_CONTEXT yang berisi sertifikat penerbit.

[in, optional] pftValidFor

Pointer ke FILETIME opsional versi struktur waktu sistem saat ini atau waktu kesegaran dari konteks saat ini.

[in] dwFlags

Nilai yang menentukan berbagai faktor pengambilan seperti waktu habis, sumber, dan pemeriksaan validitas.

Tabel berikut mencantumkan nilai yang mungkin untuk parameter dwFlags.

Nilai Arti
CRYPT_ACCUMULATIVE_TIMEOUT
0x00000800
Gunakan pengaturan registri batas waktu kumulatif komputer klien untuk pengambilan URL pencabutan.
CRYPT_CACHE_ONLY_RETRIEVAL
0x00000002
Ambil bit yang dikodekan dari cache URL klien saja. Jangan gunakan kawat untuk mengambil URL.
CRYPT_CHECK_FRESHNESS_TIME_VALIDITY
0x00000400
Periksa apakah properti ThisUpdate atau ekstensi konteks saat ini lebih besar dari atau sama dengan parameter ftValidFor.
CRYPT_DONT_CHECK_TIME_VALIDITY
0x00000200
Jangan lakukan pemeriksaan validitas waktu. Gunakan ini untuk mengambil CRL dasar yang lebih baru melalui kawat atau untuk melewati pemeriksaan validitas waktu selama pengambilan cache. Ketika bendera ini diatur, pftValidFor dapat NULL.
CRYPT_DONT_VERIFY_SIGNATURE
0x00000100
Jangan lakukan verifikasi tanda tangan. Gunakan ini ketika verifikasi objek yang diambil akan dilakukan di luar fungsi ini atau untuk memaksa penggantian entri cache yang diambil dengan entri cache baru untuk objek.
CRYPT_KEEP_TIME_VALID
0x00000080
Nilai ini dicadangkan untuk digunakan di masa mendatang.
CRYPT_OCSP_ONLY_RETRIEVAL
0x01000000
Mengambil objek valid waktu dari layanan responden OCSP hanya berdasarkan URL Akses Informasi Otoritas dalam konteks saat ini. Fungsi CertVerifyRevocation mengatur bendera ini ketika dipanggil dengan parameter dwFlags yang diatur ke CERT_VERIFY_REV_SERVER_OCSP_FLAG.
CRYPT_WIRE_ONLY_RETRIEVAL
0x00000004
Mengambil bit yang dikodekan dari kawat saja. Tidak menggunakan cache URL.

[in] dwTimeout

Nilai, dalam milidetik, yang menentukan kapan harus mengakhiri upaya pengambilan URL yang belum mengembalikan hasil.

[out, optional] ppvObject

Penunjuk ke alamat untuk objek yang dikembalikan. Jenis pengembalian dapat menjadi salah satu jenis yang didukung yang ditampilkan dalam parameter pszObjectOid dari fungsi CryptRetrieveObjectByUrl.

[in, optional] pCredentials

Penunjuk ke struktur CRYPT_CREDENTIALS opsional yang digunakan untuk mengakses URL. Satu-satunya jenis kredensial yang saat ini didukung adalah kredensial nama pengguna dan kata sandi.

[in, out, optional] pExtraInfo

Penunjuk ke struktur CRYPT_GET_TIME_VALID_OBJECT_EXTRA_INFO opsional yang berisi informasi tambahan tentang entri cache untuk objek.

Mengembalikan nilai

Jika fungsi berhasil, fungsi mengembalikan TRUE.

Jika fungsi gagal, fungsi mengembalikan FALSE. Untuk informasi kesalahan yang diperluas, panggil GetLastError.

Beberapa kemungkinan kode kesalahan mengikuti.

Mengembalikan kode Deskripsi
CRYPT_E_NOT_FOUND
Pemanggil menentukan TIME_VALID_OID_GET_CRL untuk parameter pszTimeValidOid. OID ini tidak didukung.
CRYPT_E_NOT_IN_REVOCATION_DATABASE
Pemanggil mengatur bendera CRYPT_OCSP_ONLY_RETRIEVAL dan konteksnya menyertakan URL non-OCSP.
E_INVALIDARG
Fungsi gagal mengambil CRL dari konteks sertifikat atau mengambil CTL, dan gagal menyalin URL apa pun dari entri cache.
E_OUTOFMEMORY
Fungsi tidak dapat mengalokasikan memori untuk operasi array internal.
ERROR_NOT_CONNECTED
Pemanggil tidak menyetel bendera CRYPT_CACHE_ONLY_RETRIEVAL dan tidak tersambung ke Internet.

Komentar

Pustaka tautan dinamis Cryptnet mengimplementasikan cache objek valid waktu (TVO) yang digunakan untuk mendukung fungsi CryptGetTimeValidObject. Cache digunakan oleh agen TVO global proses di mana setiap entri cache terdiri dari informasi berikut.

  • Pengidentifikasi Asal
  • Konteks OID
  • Konteks
  • URL Pengambilan
  • Waktu Kedaluwarsa
  • Informasi Waktu URL Offline
Agen TVO mendukung pengambilan objek TVO sesuai permintaan atau dengan pembaruan otomatis.

Persyaratan

Syarat Nilai
klien minimum yang didukung Windows Vista [hanya aplikasi desktop]
server minimum yang didukung Windows Server 2008 [hanya aplikasi desktop]
Platform Target Windows
Header wincrypt.h
Pustaka Cryptnet.lib
DLL Cryptnet.dll