winapi_ui_automation/um/
wintrust.rs1use shared::guiddef::GUID;
2use shared::minwindef::{BYTE, DWORD, LPVOID};
3use shared::ntdef::{HANDLE, LONG, LPCWSTR, LPWSTR, WCHAR};
4use shared::windef::HWND;
5use um::wincrypt::{CRYPT_DATA_BLOB, PCERT_STRONG_SIGN_PARA};
6pub const WTD_UI_ALL: DWORD = 1;
8pub const WTD_UI_NONE: DWORD = 2;
9pub const WTD_UI_NOBAD: DWORD = 3;
10pub const WTD_UI_NOGOOD: DWORD = 4;
11pub const WTD_REVOKE_NONE: DWORD = 0x00000000;
12pub const WTD_REVOKE_WHOLECHAIN: DWORD = 0x00000001;
13pub const WTD_CHOICE_FILE: DWORD = 1;
14pub const WTD_CHOICE_CATALOG: DWORD = 2;
15pub const WTD_CHOICE_BLOB: DWORD = 3;
16pub const WTD_CHOICE_SIGNER: DWORD = 4;
17pub const WTD_CHOICE_CERT: DWORD = 5;
18pub const WTD_STATEACTION_IGNORE: DWORD = 0x00000000;
19pub const WTD_STATEACTION_VERIFY: DWORD = 0x00000001;
20pub const WTD_STATEACTION_CLOSE: DWORD = 0x00000002;
21pub const WTD_STATEACTION_AUTO_CACHE: DWORD = 0x00000003;
22pub const WTD_STATEACTION_AUTO_CACHE_FLUSH: DWORD = 0x00000004;
23pub const WTD_PROV_FLAGS_MASK: DWORD = 0x0000FFFF;
24pub const WTD_USE_IE4_TRUST_FLAG: DWORD = 0x00000001;
25pub const WTD_NO_IE4_CHAIN_FLAG: DWORD = 0x00000002;
26pub const WTD_NO_POLICY_USAGE_FLAG: DWORD = 0x00000004;
27pub const WTD_REVOCATION_CHECK_NONE: DWORD = 0x00000010;
28pub const WTD_REVOCATION_CHECK_END_CERT: DWORD = 0x00000020;
29pub const WTD_REVOCATION_CHECK_CHAIN: DWORD = 0x00000040;
30pub const WTD_REVOCATION_CHECK_CHAIN_EXCLUDE_ROOT: DWORD = 0x00000080;
31pub const WTD_SAFER_FLAG: DWORD = 0x00000100;
32pub const WTD_HASH_ONLY_FLAG: DWORD = 0x00000200;
33pub const WTD_USE_DEFAULT_OSVER_CHECK: DWORD = 0x00000400;
34pub const WTD_LIFETIME_SIGNING_FLAG: DWORD = 0x00000800;
35pub const WTD_CACHE_ONLY_URL_RETRIEVAL: DWORD = 0x00001000;
36pub const WTD_DISABLE_MD2_MD4: DWORD = 0x00002000;
37pub const WTD_MOTW: DWORD = 0x00004000;
38pub const WTD_CODE_INTEGRITY_DRIVER_MODE: DWORD = 0x00008000;
39pub const WTD_UICONTEXT_EXECUTE: DWORD = 0;
40pub const WTD_UICONTEXT_INSTALL: DWORD = 1;
41STRUCT!{struct WINTRUST_DATA {
42 cbStruct: DWORD,
43 pPolicyCallbackData: LPVOID,
44 pSIPClientData: LPVOID,
45 dwUIChoice: DWORD,
46 fdwRevocationChecks: DWORD,
47 dwUnionChoice: DWORD,
48 u: WINTRUST_DATA_u,
49 dwStateAction: DWORD,
50 hWVTStateData: HANDLE,
51 pwszURLReference: *mut WCHAR,
52 dwProvFlags: DWORD,
53 dwUIContext: DWORD,
54 pSignatureSettings: *mut WINTRUST_SIGNATURE_SETTINGS,
55}}
56UNION!{union WINTRUST_DATA_u {
57 [usize; 1],
58 pFile pFile_mut: *mut WINTRUST_FILE_INFO,
59 }}
64pub type PWINTRUST_DATA = *mut WINTRUST_DATA;
65STRUCT!{struct WINTRUST_SIGNATURE_SETTINGS {
66 cbStruct: DWORD,
67 dwIndex: DWORD,
68 dwFlags: DWORD,
69 cSecondarySigs: DWORD,
70 dwVerifiedSigIndex: DWORD,
71 pCryptoPolicy: PCERT_STRONG_SIGN_PARA,
72}}
73pub type PWINTRUST_SIGNATURE_SETTINGS = *mut WINTRUST_SIGNATURE_SETTINGS;
74STRUCT! {struct WINTRUST_FILE_INFO {
76 cbStruct: DWORD,
77 pcwszFilePath: LPCWSTR,
78 hFile: HANDLE,
79 pgKnownSubject: *const GUID,
80}}
81extern "system" {
83 pub fn WinVerifyTrust(hwnd: HWND, pgActionID: *mut GUID, pWVTData: LPVOID) -> LONG;
84}
85pub const SPC_UUID_LENGTH: usize = 16;
87pub type SPC_UUID = [BYTE; SPC_UUID_LENGTH];
88STRUCT!{struct SPC_SERIALIZED_OBJECT {
90 ClassId: SPC_UUID,
91 SerializedData: CRYPT_DATA_BLOB,
92}}
93pub type PSPC_SERIALIZED_OBJECT = *mut SPC_SERIALIZED_OBJECT;
94STRUCT!{struct SPC_SIGINFO {
95 dwSipVersion: DWORD,
96 gSIPGuid: GUID,
97 dwReserved1: DWORD,
98 dwReserved2: DWORD,
99 dwReserved3: DWORD,
100 dwReserved4: DWORD,
101 dwReserved5: DWORD,
102}}
103pub type PSPC_SIGINFO = *mut SPC_SIGINFO;
104pub const SPC_URL_LINK_CHOICE: DWORD = 1;
105pub const SPC_MONIKER_LINK_CHOICE: DWORD = 2;
106pub const SPC_FILE_LINK_CHOICE: DWORD = 3;
107STRUCT!{struct SPC_LINK {
108 dwLinkChoice: DWORD,
109 u: SPC_LINK_u,
110}}
111UNION!{union SPC_LINK_u {
112 [u32; 6] [u64; 4],
113 pwszUrl pwszUrl_mut: LPWSTR,
114 Moniker Moniker_mut: SPC_SERIALIZED_OBJECT,
115 pwszFile pwszFile_mut: LPWSTR,
116}}
117pub type PSPC_LINK = *mut SPC_LINK;
118STRUCT!{struct SPC_SP_OPUS_INFO {
120 pwszProgramName: LPCWSTR,
121 pMoreInfo: *mut SPC_LINK,
122 pPublisherInfo: *mut SPC_LINK,
123}}