use shared::guiddef::GUID; use shared::minwindef::{BYTE, DWORD, LPVOID}; use shared::ntdef::{HANDLE, LONG, LPCWSTR, LPWSTR, WCHAR}; use shared::windef::HWND; use um::wincrypt::{CRYPT_DATA_BLOB, PCERT_STRONG_SIGN_PARA}; //90 pub const WTD_UI_ALL: DWORD = 1; pub const WTD_UI_NONE: DWORD = 2; pub const WTD_UI_NOBAD: DWORD = 3; pub const WTD_UI_NOGOOD: DWORD = 4; pub const WTD_REVOKE_NONE: DWORD = 0x00000000; pub const WTD_REVOKE_WHOLECHAIN: DWORD = 0x00000001; pub const WTD_CHOICE_FILE: DWORD = 1; pub const WTD_CHOICE_CATALOG: DWORD = 2; pub const WTD_CHOICE_BLOB: DWORD = 3; pub const WTD_CHOICE_SIGNER: DWORD = 4; pub const WTD_CHOICE_CERT: DWORD = 5; pub const WTD_STATEACTION_IGNORE: DWORD = 0x00000000; pub const WTD_STATEACTION_VERIFY: DWORD = 0x00000001; pub const WTD_STATEACTION_CLOSE: DWORD = 0x00000002; pub const WTD_STATEACTION_AUTO_CACHE: DWORD = 0x00000003; pub const WTD_STATEACTION_AUTO_CACHE_FLUSH: DWORD = 0x00000004; pub const WTD_PROV_FLAGS_MASK: DWORD = 0x0000FFFF; pub const WTD_USE_IE4_TRUST_FLAG: DWORD = 0x00000001; pub const WTD_NO_IE4_CHAIN_FLAG: DWORD = 0x00000002; pub const WTD_NO_POLICY_USAGE_FLAG: DWORD = 0x00000004; pub const WTD_REVOCATION_CHECK_NONE: DWORD = 0x00000010; pub const WTD_REVOCATION_CHECK_END_CERT: DWORD = 0x00000020; pub const WTD_REVOCATION_CHECK_CHAIN: DWORD = 0x00000040; pub const WTD_REVOCATION_CHECK_CHAIN_EXCLUDE_ROOT: DWORD = 0x00000080; pub const WTD_SAFER_FLAG: DWORD = 0x00000100; pub const WTD_HASH_ONLY_FLAG: DWORD = 0x00000200; pub const WTD_USE_DEFAULT_OSVER_CHECK: DWORD = 0x00000400; pub const WTD_LIFETIME_SIGNING_FLAG: DWORD = 0x00000800; pub const WTD_CACHE_ONLY_URL_RETRIEVAL: DWORD = 0x00001000; pub const WTD_DISABLE_MD2_MD4: DWORD = 0x00002000; pub const WTD_MOTW: DWORD = 0x00004000; pub const WTD_CODE_INTEGRITY_DRIVER_MODE: DWORD = 0x00008000; pub const WTD_UICONTEXT_EXECUTE: DWORD = 0; pub const WTD_UICONTEXT_INSTALL: DWORD = 1; STRUCT!{struct WINTRUST_DATA { cbStruct: DWORD, pPolicyCallbackData: LPVOID, pSIPClientData: LPVOID, dwUIChoice: DWORD, fdwRevocationChecks: DWORD, dwUnionChoice: DWORD, u: WINTRUST_DATA_u, dwStateAction: DWORD, hWVTStateData: HANDLE, pwszURLReference: *mut WCHAR, dwProvFlags: DWORD, dwUIContext: DWORD, pSignatureSettings: *mut WINTRUST_SIGNATURE_SETTINGS, }} UNION!{union WINTRUST_DATA_u { [usize; 1], pFile pFile_mut: *mut WINTRUST_FILE_INFO, // pCatalog pCatalog_mut: *mut WINTRUST_CATALOG_INFO, // pBlob pBlob_mut: *mut WINTRUST_BLOB_INFO, // pSgnr pSgnr_mut: *mut WINTRUST_SGNR_INFO, // pCert pCert_mut: *mut WINTRUST_CERT_INFO, }} pub type PWINTRUST_DATA = *mut WINTRUST_DATA; STRUCT!{struct WINTRUST_SIGNATURE_SETTINGS { cbStruct: DWORD, dwIndex: DWORD, dwFlags: DWORD, cSecondarySigs: DWORD, dwVerifiedSigIndex: DWORD, pCryptoPolicy: PCERT_STRONG_SIGN_PARA, }} pub type PWINTRUST_SIGNATURE_SETTINGS = *mut WINTRUST_SIGNATURE_SETTINGS; //217 STRUCT! {struct WINTRUST_FILE_INFO { cbStruct: DWORD, pcwszFilePath: LPCWSTR, hFile: HANDLE, pgKnownSubject: *const GUID, }} //414 extern "system" { pub fn WinVerifyTrust(hwnd: HWND, pgActionID: *mut GUID, pWVTData: LPVOID) -> LONG; } //1246 pub const SPC_UUID_LENGTH: usize = 16; pub type SPC_UUID = [BYTE; SPC_UUID_LENGTH]; //SpcSerializedObjectAttributesClassId STRUCT!{struct SPC_SERIALIZED_OBJECT { ClassId: SPC_UUID, SerializedData: CRYPT_DATA_BLOB, }} pub type PSPC_SERIALIZED_OBJECT = *mut SPC_SERIALIZED_OBJECT; STRUCT!{struct SPC_SIGINFO { dwSipVersion: DWORD, gSIPGuid: GUID, dwReserved1: DWORD, dwReserved2: DWORD, dwReserved3: DWORD, dwReserved4: DWORD, dwReserved5: DWORD, }} pub type PSPC_SIGINFO = *mut SPC_SIGINFO; pub const SPC_URL_LINK_CHOICE: DWORD = 1; pub const SPC_MONIKER_LINK_CHOICE: DWORD = 2; pub const SPC_FILE_LINK_CHOICE: DWORD = 3; STRUCT!{struct SPC_LINK { dwLinkChoice: DWORD, u: SPC_LINK_u, }} UNION!{union SPC_LINK_u { [u32; 6] [u64; 4], pwszUrl pwszUrl_mut: LPWSTR, Moniker Moniker_mut: SPC_SERIALIZED_OBJECT, pwszFile pwszFile_mut: LPWSTR, }} pub type PSPC_LINK = *mut SPC_LINK; //1337 STRUCT!{struct SPC_SP_OPUS_INFO { pwszProgramName: LPCWSTR, pMoreInfo: *mut SPC_LINK, pPublisherInfo: *mut SPC_LINK, }}