Fungsi WinVerifyTrustEx (wintrust.h)

Fungsi WinVerifyTrustEx melakukan tindakan verifikasi kepercayaan pada objek tertentu dan membawa pointer ke struktur WINTRUST_DATA . Fungsi meneruskan pertanyaan ke penyedia kepercayaan, jika ada, yang mendukung pengidentifikasi tindakan.

Untuk verifikasi sertifikat, gunakan fungsi CertGetCertificateChain dan CertVerifyCertificateChainPolicy .

Sintaks

long WinVerifyTrustEx(
  [in] HWND          hwnd,
  [in] GUID          *pgActionID,
  [in] WINTRUST_DATA *pWinTrustData
);

Parameter

[in] hwnd

Handel opsional ke jendela penelepon. Penyedia kepercayaan dapat menggunakan nilai ini untuk menentukan apakah ia dapat berinteraksi dengan pengguna. Namun, penyedia kepercayaan biasanya melakukan tindakan verifikasi tanpa input dari pengguna.

Parameter ini bisa menjadi salah satu nilai berikut.

Nilai Makna
INVALID_HANDLE_VALUE
Tidak ada pengguna interaktif. Penyedia kepercayaan melakukan tindakan verifikasi tanpa bantuan pengguna.
Nol
Penyedia kepercayaan dapat menggunakan desktop interaktif untuk menampilkan antarmuka penggunanya.
Handel jendela yang valid
Penyedia kepercayaan dapat memperlakukan nilai apa pun selain INVALID_HANDLE_VALUE atau nol sebagai handel jendela yang valid yang dapat digunakan untuk berinteraksi dengan pengguna.

[in] pgActionID

Penunjuk ke struktur GUID yang mengidentifikasi tindakan dan penyedia kepercayaan yang mendukung tindakan tersebut. Nilai ini menunjukkan jenis tindakan verifikasi yang akan dilakukan pada struktur yang ditunjukkan oleh pWinTrustData.

Layanan WinTrust dirancang untuk bekerja dengan penyedia kepercayaan yang diterapkan oleh pihak ketiga. Setiap penyedia kepercayaan menyediakan serangkaian pengidentifikasi tindakan uniknya sendiri. Untuk informasi tentang pengidentifikasi tindakan yang didukung oleh penyedia kepercayaan, lihat dokumentasi untuk penyedia kepercayaan tersebut.

Misalnya, Microsoft menyediakan Penyedia Kepercayaan Penerbit Perangkat Lunak yang dapat membangun kepercayaan perangkat lunak yang diunduh dari Internet atau beberapa jaringan publik lainnya. Penyedia Kepercayaan Penerbit Perangkat Lunak mendukung pengidentifikasi tindakan berikut. Konstanta ini didefinisikan dalam Softpub.h.

Nilai Makna
DRIVER_ACTION_VERIFY
Verifikasi keaslian driver bertanda tangan Windows Hardware Quality Labs (WHQL). Ini adalah penyedia kebijakan add-on Authenticode.
HTTPSPROV_ACTION
Verifikasi koneksi SSL/TLS melalui Internet Explorer.
OFFICESIGN_ACTION_VERIFY
ID Tindakan ini tidak didukung. Verifikasi keaslian file penyimpanan terstruktur dengan menggunakan penyedia kebijakan add-on Microsoft Office Authenticode.

Windows Server 2003 dan Windows XP: ID Tindakan ini didukung.

WINTRUST_ACTION_GENERIC_CERT_VERIFY
Verifikasi rantai sertifikat saja. Ini hanya berlaku saat meneruskan dalam konteks sertifikat dalam struktur input WinVerifyTrust .
Catatan Kami tidak menyarankan penggunaan fungsi ini untuk melakukan verifikasi sertifikat. Untuk melakukan verifikasi sertifikat, gunakan fungsi CertGetCertificateChain dan CertVerifyCertificateChainPolicy .
 
WINTRUST_ACTION_GENERIC_CHAIN_VERIFY
Verifikasi rantai sertifikat yang dibuat dari jenis objek apa pun. Panggilan balik disediakan untuk menerapkan kebijakan rantai akhir dengan menggunakan konteks rantai untuk setiap penanda tangan dan penanda tangan penghitung.
WINTRUST_ACTION_GENERIC_VERIFY_V2
Verifikasi file atau objek menggunakan penyedia kebijakan Authenticode.
WINTRUST_ACTION_TRUSTPROVIDER_TEST
Tulis struktur CRYPT_PROVIDER_DATA ke file setelah memanggil penyedia kebijakan Authenticode.

[in] pWinTrustData

Penunjuk ke struktur WINTRUST_DATA yang berisi informasi yang diperlukan penyedia kepercayaan untuk memproses pengidentifikasi tindakan yang ditentukan. Biasanya, struktur mencakup informasi yang mengidentifikasi objek yang harus dievaluasi oleh penyedia kepercayaan.

Format struktur tergantung pada pengidentifikasi tindakan. Untuk informasi tentang data yang diperlukan untuk pengidentifikasi tindakan tertentu, lihat dokumentasi untuk penyedia kepercayaan yang mendukung tindakan tersebut.

Nilai kembali

Catatan, sementara jenis pengembalian dinyatakan sebagai HRESULT API ini mengembalikan kode kesalahan Win32, jangan gunakan SUCCEEDED() atau FAILED() untuk menguji hasilnya.

Jika penyedia kepercayaan memverifikasi bahwa subjek dipercaya untuk tindakan yang ditentukan, nilai yang dikembalikan ERROR_SUCCESS. Jika tidak, fungsi mengembalikan kode status dari penyedia kepercayaan.

Misalnya, penyedia kepercayaan mungkin menunjukkan bahwa subjek tidak tepercaya, atau dipercaya tetapi dengan batasan atau peringatan. Nilai yang dikembalikan dapat berupa nilai khusus penyedia kepercayaan yang dijelaskan dalam dokumentasi untuk penyedia kepercayaan individual, atau bisa menjadi salah satu kode kesalahan berikut.

Menampilkan kode Deskripsi
TRUST_E_SUBJECT_NOT_TRUSTED
Subjek gagal dalam tindakan verifikasi yang ditentukan. Sebagian besar penyedia kepercayaan mengembalikan kode kesalahan yang lebih rinci yang menjelaskan alasan kegagalan tersebut.
Catatan  

Kode pengembalian TRUST_E_SUBJECT_NOT_TRUSTED dapat dikembalikan tergantung pada nilai kunci registri EnableCertPaddingCheck di bawah HKLM\Software\Microsoft\Cryptography\Wintrust\Config. Jika EnableCertPaddingCheck diatur ke "1", maka pemeriksaan tambahan dilakukan untuk memverifikasi bahwa struktur WIN_CERTIFICATE tidak berisi informasi asing. Pemeriksaan memvalidasi bahwa tidak ada data non-nol di luar struktur PKCS #7. Kunci EnableCertPaddingCheck akan diatur ke "1" secara default pada 10 Juni 2014. Untuk informasi selengkapnya, silakan merujuk ke saran keamanan berikut: http://technet.microsoft.com/security/advisory/2915720#section1.

 
TRUST_E_PROVIDER_UNKNOWN
Penyedia kepercayaan tidak dikenali pada sistem ini.
TRUST_E_ACTION_UNKNOWN
Penyedia kepercayaan tidak mendukung tindakan yang ditentukan.
TRUST_E_SUBJECT_FORM_UNKNOWN
Penyedia kepercayaan tidak mendukung formulir yang ditentukan untuk subjek.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows XP [hanya aplikasi desktop]
Server minimum yang didukung Windows Server 2003 [hanya aplikasi desktop]
Target Platform Windows
Header wintrust.h
Pustaka Wintrust.lib
DLL Wintrust.dll