1067 lines
44 KiB
Zig
1067 lines
44 KiB
Zig
//! NOTE: this file is autogenerated, DO NOT MODIFY
|
|
//--------------------------------------------------------------------------------
|
|
// Section: Constants (159)
|
|
//--------------------------------------------------------------------------------
|
|
pub const WINTRUST_CONFIG_REGPATH = "Software\\Microsoft\\Cryptography\\Wintrust\\Config";
|
|
pub const WINTRUST_MAX_HEADER_BYTES_TO_MAP_VALUE_NAME = "MaxHeaderBytesToMap";
|
|
pub const WINTRUST_MAX_HEADER_BYTES_TO_MAP_DEFAULT = @as(u32, 10485760);
|
|
pub const WINTRUST_MAX_HASH_BYTES_TO_MAP_VALUE_NAME = "MaxHashBytesToMap";
|
|
pub const WINTRUST_MAX_HASH_BYTES_TO_MAP_DEFAULT = @as(u32, 1048576);
|
|
pub const WTD_PROV_FLAGS_MASK = @as(u32, 65535);
|
|
pub const WTD_CODE_INTEGRITY_DRIVER_MODE = @as(u32, 32768);
|
|
pub const WSS_VERIFY_SEALING = @as(u32, 4);
|
|
pub const WSS_INPUT_FLAG_MASK = @as(u32, 7);
|
|
pub const WSS_OUT_SEALING_STATUS_VERIFIED = @as(u32, 2147483648);
|
|
pub const WSS_OUT_HAS_SEALING_INTENT = @as(u32, 1073741824);
|
|
pub const WSS_OUT_FILE_SUPPORTS_SEAL = @as(u32, 536870912);
|
|
pub const WSS_OUTPUT_FLAG_MASK = @as(u32, 3758096384);
|
|
pub const WTCI_DONT_OPEN_STORES = @as(u32, 1);
|
|
pub const WTCI_OPEN_ONLY_ROOT = @as(u32, 2);
|
|
pub const WTCI_USE_LOCAL_MACHINE = @as(u32, 4);
|
|
pub const TRUSTERROR_STEP_WVTPARAMS = @as(u32, 0);
|
|
pub const TRUSTERROR_STEP_FILEIO = @as(u32, 2);
|
|
pub const TRUSTERROR_STEP_SIP = @as(u32, 3);
|
|
pub const TRUSTERROR_STEP_SIPSUBJINFO = @as(u32, 5);
|
|
pub const TRUSTERROR_STEP_CATALOGFILE = @as(u32, 6);
|
|
pub const TRUSTERROR_STEP_CERTSTORE = @as(u32, 7);
|
|
pub const TRUSTERROR_STEP_MESSAGE = @as(u32, 8);
|
|
pub const TRUSTERROR_STEP_MSG_SIGNERCOUNT = @as(u32, 9);
|
|
pub const TRUSTERROR_STEP_MSG_INNERCNTTYPE = @as(u32, 10);
|
|
pub const TRUSTERROR_STEP_MSG_INNERCNT = @as(u32, 11);
|
|
pub const TRUSTERROR_STEP_MSG_STORE = @as(u32, 12);
|
|
pub const TRUSTERROR_STEP_MSG_SIGNERINFO = @as(u32, 13);
|
|
pub const TRUSTERROR_STEP_MSG_SIGNERCERT = @as(u32, 14);
|
|
pub const TRUSTERROR_STEP_MSG_CERTCHAIN = @as(u32, 15);
|
|
pub const TRUSTERROR_STEP_MSG_COUNTERSIGINFO = @as(u32, 16);
|
|
pub const TRUSTERROR_STEP_MSG_COUNTERSIGCERT = @as(u32, 17);
|
|
pub const TRUSTERROR_STEP_VERIFY_MSGHASH = @as(u32, 18);
|
|
pub const TRUSTERROR_STEP_VERIFY_MSGINDIRECTDATA = @as(u32, 19);
|
|
pub const TRUSTERROR_STEP_FINAL_WVTINIT = @as(u32, 30);
|
|
pub const TRUSTERROR_STEP_FINAL_INITPROV = @as(u32, 31);
|
|
pub const TRUSTERROR_STEP_FINAL_OBJPROV = @as(u32, 32);
|
|
pub const TRUSTERROR_STEP_FINAL_SIGPROV = @as(u32, 33);
|
|
pub const TRUSTERROR_STEP_FINAL_CERTPROV = @as(u32, 34);
|
|
pub const TRUSTERROR_STEP_FINAL_CERTCHKPROV = @as(u32, 35);
|
|
pub const TRUSTERROR_STEP_FINAL_POLICYPROV = @as(u32, 36);
|
|
pub const TRUSTERROR_STEP_FINAL_UIPROV = @as(u32, 37);
|
|
pub const TRUSTERROR_MAX_STEPS = @as(u32, 38);
|
|
pub const CPD_CHOICE_SIP = @as(u32, 1);
|
|
pub const CPD_USE_NT5_CHAIN_FLAG = @as(u32, 2147483648);
|
|
pub const CPD_REVOCATION_CHECK_NONE = @as(u32, 65536);
|
|
pub const CPD_REVOCATION_CHECK_END_CERT = @as(u32, 131072);
|
|
pub const CPD_REVOCATION_CHECK_CHAIN = @as(u32, 262144);
|
|
pub const CPD_REVOCATION_CHECK_CHAIN_EXCLUDE_ROOT = @as(u32, 524288);
|
|
pub const CPD_RETURN_LOWER_QUALITY_CHAINS = @as(u32, 1048576);
|
|
pub const CPD_UISTATE_MODE_PROMPT = @as(u32, 0);
|
|
pub const CPD_UISTATE_MODE_BLOCK = @as(u32, 1);
|
|
pub const CPD_UISTATE_MODE_ALLOW = @as(u32, 2);
|
|
pub const CPD_UISTATE_MODE_MASK = @as(u32, 3);
|
|
pub const WSS_OBJTRUST_SUPPORT = @as(u32, 1);
|
|
pub const WSS_SIGTRUST_SUPPORT = @as(u32, 2);
|
|
pub const WSS_CERTTRUST_SUPPORT = @as(u32, 4);
|
|
pub const SGNR_TYPE_TIMESTAMP = @as(u32, 16);
|
|
pub const CERT_CONFIDENCE_SIG = @as(u32, 268435456);
|
|
pub const CERT_CONFIDENCE_TIME = @as(u32, 16777216);
|
|
pub const CERT_CONFIDENCE_TIMENEST = @as(u32, 1048576);
|
|
pub const CERT_CONFIDENCE_AUTHIDEXT = @as(u32, 65536);
|
|
pub const CERT_CONFIDENCE_HYGIENE = @as(u32, 4096);
|
|
pub const CERT_CONFIDENCE_HIGHEST = @as(u32, 286330880);
|
|
pub const WT_CURRENT_VERSION = @as(u32, 512);
|
|
pub const WT_PROVIDER_DLL_NAME = "WINTRUST.DLL";
|
|
pub const WT_PROVIDER_CERTTRUST_FUNCTION = "WintrustCertificateTrust";
|
|
pub const WT_ADD_ACTION_ID_RET_RESULT_FLAG = @as(u32, 1);
|
|
pub const szOID_TRUSTED_CODESIGNING_CA_LIST = "1.3.6.1.4.1.311.2.2.1";
|
|
pub const szOID_TRUSTED_CLIENT_AUTH_CA_LIST = "1.3.6.1.4.1.311.2.2.2";
|
|
pub const szOID_TRUSTED_SERVER_AUTH_CA_LIST = "1.3.6.1.4.1.311.2.2.3";
|
|
pub const SPC_COMMON_NAME_OBJID = "2.5.4.3";
|
|
pub const SPC_TIME_STAMP_REQUEST_OBJID = "1.3.6.1.4.1.311.3.2.1";
|
|
pub const SPC_INDIRECT_DATA_OBJID = "1.3.6.1.4.1.311.2.1.4";
|
|
pub const SPC_SP_AGENCY_INFO_OBJID = "1.3.6.1.4.1.311.2.1.10";
|
|
pub const SPC_STATEMENT_TYPE_OBJID = "1.3.6.1.4.1.311.2.1.11";
|
|
pub const SPC_SP_OPUS_INFO_OBJID = "1.3.6.1.4.1.311.2.1.12";
|
|
pub const SPC_CERT_EXTENSIONS_OBJID = "1.3.6.1.4.1.311.2.1.14";
|
|
pub const SPC_PE_IMAGE_DATA_OBJID = "1.3.6.1.4.1.311.2.1.15";
|
|
pub const SPC_RAW_FILE_DATA_OBJID = "1.3.6.1.4.1.311.2.1.18";
|
|
pub const SPC_STRUCTURED_STORAGE_DATA_OBJID = "1.3.6.1.4.1.311.2.1.19";
|
|
pub const SPC_JAVA_CLASS_DATA_OBJID = "1.3.6.1.4.1.311.2.1.20";
|
|
pub const SPC_INDIVIDUAL_SP_KEY_PURPOSE_OBJID = "1.3.6.1.4.1.311.2.1.21";
|
|
pub const SPC_COMMERCIAL_SP_KEY_PURPOSE_OBJID = "1.3.6.1.4.1.311.2.1.22";
|
|
pub const SPC_CAB_DATA_OBJID = "1.3.6.1.4.1.311.2.1.25";
|
|
pub const SPC_GLUE_RDN_OBJID = "1.3.6.1.4.1.311.2.1.25";
|
|
pub const SPC_MINIMAL_CRITERIA_OBJID = "1.3.6.1.4.1.311.2.1.26";
|
|
pub const SPC_FINANCIAL_CRITERIA_OBJID = "1.3.6.1.4.1.311.2.1.27";
|
|
pub const SPC_LINK_OBJID = "1.3.6.1.4.1.311.2.1.28";
|
|
pub const SPC_SIGINFO_OBJID = "1.3.6.1.4.1.311.2.1.30";
|
|
pub const SPC_PE_IMAGE_PAGE_HASHES_V1_OBJID = "1.3.6.1.4.1.311.2.3.1";
|
|
pub const SPC_PE_IMAGE_PAGE_HASHES_V2_OBJID = "1.3.6.1.4.1.311.2.3.2";
|
|
pub const szOID_NESTED_SIGNATURE = "1.3.6.1.4.1.311.2.4.1";
|
|
pub const szOID_INTENT_TO_SEAL = "1.3.6.1.4.1.311.2.4.2";
|
|
pub const szOID_SEALING_SIGNATURE = "1.3.6.1.4.1.311.2.4.3";
|
|
pub const szOID_SEALING_TIMESTAMP = "1.3.6.1.4.1.311.2.4.4";
|
|
pub const szOID_ENHANCED_HASH = "1.3.6.1.4.1.311.2.5.1";
|
|
pub const SPC_RELAXED_PE_MARKER_CHECK_OBJID = "1.3.6.1.4.1.311.2.6.1";
|
|
pub const SPC_ENCRYPTED_DIGEST_RETRY_COUNT_OBJID = "1.3.6.1.4.1.311.2.6.2";
|
|
pub const szOID_PKCS_9_SEQUENCE_NUMBER = "1.2.840.113549.1.9.25.4";
|
|
pub const CAT_NAMEVALUE_OBJID = "1.3.6.1.4.1.311.12.2.1";
|
|
pub const CAT_MEMBERINFO_OBJID = "1.3.6.1.4.1.311.12.2.2";
|
|
pub const CAT_MEMBERINFO2_OBJID = "1.3.6.1.4.1.311.12.2.3";
|
|
pub const SPC_WINDOWS_HELLO_COMPATIBILITY_OBJID = "1.3.6.1.4.1.311.10.41.1";
|
|
pub const SPC_NATURAL_AUTH_PLUGIN_OBJID = "1.3.6.1.4.1.311.96.1.1";
|
|
pub const SPC_SP_AGENCY_INFO_STRUCT = @import("../zig.zig").typedConst([*:0]const u8, @as(i32, 2000));
|
|
pub const SPC_MINIMAL_CRITERIA_STRUCT = @import("../zig.zig").typedConst([*:0]const u8, @as(i32, 2001));
|
|
pub const SPC_FINANCIAL_CRITERIA_STRUCT = @import("../zig.zig").typedConst([*:0]const u8, @as(i32, 2002));
|
|
pub const SPC_INDIRECT_DATA_CONTENT_STRUCT = @import("../zig.zig").typedConst([*:0]const u8, @as(i32, 2003));
|
|
pub const SPC_PE_IMAGE_DATA_STRUCT = @import("../zig.zig").typedConst([*:0]const u8, @as(i32, 2004));
|
|
pub const SPC_LINK_STRUCT = @import("../zig.zig").typedConst([*:0]const u8, @as(i32, 2005));
|
|
pub const SPC_STATEMENT_TYPE_STRUCT = @import("../zig.zig").typedConst([*:0]const u8, @as(i32, 2006));
|
|
pub const SPC_SP_OPUS_INFO_STRUCT = @import("../zig.zig").typedConst([*:0]const u8, @as(i32, 2007));
|
|
pub const SPC_CAB_DATA_STRUCT = @import("../zig.zig").typedConst([*:0]const u8, @as(i32, 2008));
|
|
pub const SPC_JAVA_CLASS_DATA_STRUCT = @import("../zig.zig").typedConst([*:0]const u8, @as(i32, 2009));
|
|
pub const INTENT_TO_SEAL_ATTRIBUTE_STRUCT = @import("../zig.zig").typedConst([*:0]const u8, @as(i32, 2010));
|
|
pub const SEALING_SIGNATURE_ATTRIBUTE_STRUCT = @import("../zig.zig").typedConst([*:0]const u8, @as(i32, 2011));
|
|
pub const SEALING_TIMESTAMP_ATTRIBUTE_STRUCT = @import("../zig.zig").typedConst([*:0]const u8, @as(i32, 2012));
|
|
pub const SPC_SIGINFO_STRUCT = @import("../zig.zig").typedConst([*:0]const u8, @as(i32, 2130));
|
|
pub const CAT_NAMEVALUE_STRUCT = @import("../zig.zig").typedConst([*:0]const u8, @as(i32, 2221));
|
|
pub const CAT_MEMBERINFO_STRUCT = @import("../zig.zig").typedConst([*:0]const u8, @as(i32, 2222));
|
|
pub const CAT_MEMBERINFO2_STRUCT = @import("../zig.zig").typedConst([*:0]const u8, @as(i32, 2223));
|
|
pub const SPC_UUID_LENGTH = @as(u32, 16);
|
|
pub const SPC_URL_LINK_CHOICE = @as(u32, 1);
|
|
pub const SPC_MONIKER_LINK_CHOICE = @as(u32, 2);
|
|
pub const SPC_FILE_LINK_CHOICE = @as(u32, 3);
|
|
pub const WIN_CERT_REVISION_1_0 = @as(u32, 256);
|
|
pub const WIN_CERT_REVISION_2_0 = @as(u32, 512);
|
|
pub const WIN_CERT_TYPE_X509 = @as(u32, 1);
|
|
pub const WIN_CERT_TYPE_PKCS_SIGNED_DATA = @as(u32, 2);
|
|
pub const WIN_CERT_TYPE_RESERVED_1 = @as(u32, 3);
|
|
pub const WIN_CERT_TYPE_TS_STACK_SIGNED = @as(u32, 4);
|
|
pub const WT_TRUSTDBDIALOG_NO_UI_FLAG = @as(u32, 1);
|
|
pub const WT_TRUSTDBDIALOG_ONLY_PUB_TAB_FLAG = @as(u32, 2);
|
|
pub const WT_TRUSTDBDIALOG_WRITE_LEGACY_REG_FLAG = @as(u32, 256);
|
|
pub const WT_TRUSTDBDIALOG_WRITE_IEAK_STORE_FLAG = @as(u32, 512);
|
|
pub const SP_POLICY_PROVIDER_DLL_NAME = "WINTRUST.DLL";
|
|
pub const SP_INIT_FUNCTION = "SoftpubInitialize";
|
|
pub const SP_OBJTRUST_FUNCTION = "SoftpubLoadMessage";
|
|
pub const SP_SIGTRUST_FUNCTION = "SoftpubLoadSignature";
|
|
pub const SP_CHKCERT_FUNCTION = "SoftpubCheckCert";
|
|
pub const SP_FINALPOLICY_FUNCTION = "SoftpubAuthenticode";
|
|
pub const SP_CLEANUPPOLICY_FUNCTION = "SoftpubCleanup";
|
|
pub const SP_TESTDUMPPOLICY_FUNCTION_TEST = "SoftpubDumpStructure";
|
|
pub const SP_GENERIC_CERT_INIT_FUNCTION = "SoftpubDefCertInit";
|
|
pub const GENERIC_CHAIN_FINALPOLICY_FUNCTION = "GenericChainFinalProv";
|
|
pub const GENERIC_CHAIN_CERTTRUST_FUNCTION = "GenericChainCertificateTrust";
|
|
pub const HTTPS_FINALPOLICY_FUNCTION = "HTTPSFinalProv";
|
|
pub const HTTPS_CHKCERT_FUNCTION = "HTTPSCheckCertProv";
|
|
pub const HTTPS_CERTTRUST_FUNCTION = "HTTPSCertificateTrust";
|
|
pub const OFFICE_POLICY_PROVIDER_DLL_NAME = "WINTRUST.DLL";
|
|
pub const OFFICE_INITPROV_FUNCTION = "OfficeInitializePolicy";
|
|
pub const OFFICE_CLEANUPPOLICY_FUNCTION = "OfficeCleanupPolicy";
|
|
pub const DRIVER_INITPROV_FUNCTION = "DriverInitializePolicy";
|
|
pub const DRIVER_FINALPOLPROV_FUNCTION = "DriverFinalPolicy";
|
|
pub const DRIVER_CLEANUPPOLICY_FUNCTION = "DriverCleanupPolicy";
|
|
pub const CCPI_RESULT_ALLOW = @as(u32, 1);
|
|
pub const CCPI_RESULT_DENY = @as(u32, 2);
|
|
pub const CCPI_RESULT_AUDIT = @as(u32, 3);
|
|
|
|
//--------------------------------------------------------------------------------
|
|
// Section: Types (76)
|
|
//--------------------------------------------------------------------------------
|
|
pub const WINTRUST_GET_DEFAULT_FOR_USAGE_ACTION = enum(u32) {
|
|
ALLOCANDFILL = 1,
|
|
FREE = 2,
|
|
};
|
|
pub const DWACTION_ALLOCANDFILL = WINTRUST_GET_DEFAULT_FOR_USAGE_ACTION.ALLOCANDFILL;
|
|
pub const DWACTION_FREE = WINTRUST_GET_DEFAULT_FOR_USAGE_ACTION.FREE;
|
|
|
|
pub const WINTRUST_POLICY_FLAGS = enum(u32) {
|
|
TRUSTTEST = 32,
|
|
TESTCANBEVALID = 128,
|
|
IGNOREEXPIRATION = 256,
|
|
IGNOREREVOKATION = 512,
|
|
OFFLINEOK_IND = 1024,
|
|
OFFLINEOK_COM = 2048,
|
|
OFFLINEOKNBU_IND = 4096,
|
|
OFFLINEOKNBU_COM = 8192,
|
|
VERIFY_V1_OFF = 65536,
|
|
IGNOREREVOCATIONONTS = 131072,
|
|
ALLOWONLYPERTRUST = 262144,
|
|
_,
|
|
pub fn initFlags(o: struct {
|
|
TRUSTTEST: u1 = 0,
|
|
TESTCANBEVALID: u1 = 0,
|
|
IGNOREEXPIRATION: u1 = 0,
|
|
IGNOREREVOKATION: u1 = 0,
|
|
OFFLINEOK_IND: u1 = 0,
|
|
OFFLINEOK_COM: u1 = 0,
|
|
OFFLINEOKNBU_IND: u1 = 0,
|
|
OFFLINEOKNBU_COM: u1 = 0,
|
|
VERIFY_V1_OFF: u1 = 0,
|
|
IGNOREREVOCATIONONTS: u1 = 0,
|
|
ALLOWONLYPERTRUST: u1 = 0,
|
|
}) WINTRUST_POLICY_FLAGS {
|
|
return @as(WINTRUST_POLICY_FLAGS, @enumFromInt(
|
|
(if (o.TRUSTTEST == 1) @intFromEnum(WINTRUST_POLICY_FLAGS.TRUSTTEST) else 0)
|
|
| (if (o.TESTCANBEVALID == 1) @intFromEnum(WINTRUST_POLICY_FLAGS.TESTCANBEVALID) else 0)
|
|
| (if (o.IGNOREEXPIRATION == 1) @intFromEnum(WINTRUST_POLICY_FLAGS.IGNOREEXPIRATION) else 0)
|
|
| (if (o.IGNOREREVOKATION == 1) @intFromEnum(WINTRUST_POLICY_FLAGS.IGNOREREVOKATION) else 0)
|
|
| (if (o.OFFLINEOK_IND == 1) @intFromEnum(WINTRUST_POLICY_FLAGS.OFFLINEOK_IND) else 0)
|
|
| (if (o.OFFLINEOK_COM == 1) @intFromEnum(WINTRUST_POLICY_FLAGS.OFFLINEOK_COM) else 0)
|
|
| (if (o.OFFLINEOKNBU_IND == 1) @intFromEnum(WINTRUST_POLICY_FLAGS.OFFLINEOKNBU_IND) else 0)
|
|
| (if (o.OFFLINEOKNBU_COM == 1) @intFromEnum(WINTRUST_POLICY_FLAGS.OFFLINEOKNBU_COM) else 0)
|
|
| (if (o.VERIFY_V1_OFF == 1) @intFromEnum(WINTRUST_POLICY_FLAGS.VERIFY_V1_OFF) else 0)
|
|
| (if (o.IGNOREREVOCATIONONTS == 1) @intFromEnum(WINTRUST_POLICY_FLAGS.IGNOREREVOCATIONONTS) else 0)
|
|
| (if (o.ALLOWONLYPERTRUST == 1) @intFromEnum(WINTRUST_POLICY_FLAGS.ALLOWONLYPERTRUST) else 0)
|
|
));
|
|
}
|
|
};
|
|
pub const WTPF_TRUSTTEST = WINTRUST_POLICY_FLAGS.TRUSTTEST;
|
|
pub const WTPF_TESTCANBEVALID = WINTRUST_POLICY_FLAGS.TESTCANBEVALID;
|
|
pub const WTPF_IGNOREEXPIRATION = WINTRUST_POLICY_FLAGS.IGNOREEXPIRATION;
|
|
pub const WTPF_IGNOREREVOKATION = WINTRUST_POLICY_FLAGS.IGNOREREVOKATION;
|
|
pub const WTPF_OFFLINEOK_IND = WINTRUST_POLICY_FLAGS.OFFLINEOK_IND;
|
|
pub const WTPF_OFFLINEOK_COM = WINTRUST_POLICY_FLAGS.OFFLINEOK_COM;
|
|
pub const WTPF_OFFLINEOKNBU_IND = WINTRUST_POLICY_FLAGS.OFFLINEOKNBU_IND;
|
|
pub const WTPF_OFFLINEOKNBU_COM = WINTRUST_POLICY_FLAGS.OFFLINEOKNBU_COM;
|
|
pub const WTPF_VERIFY_V1_OFF = WINTRUST_POLICY_FLAGS.VERIFY_V1_OFF;
|
|
pub const WTPF_IGNOREREVOCATIONONTS = WINTRUST_POLICY_FLAGS.IGNOREREVOCATIONONTS;
|
|
pub const WTPF_ALLOWONLYPERTRUST = WINTRUST_POLICY_FLAGS.ALLOWONLYPERTRUST;
|
|
|
|
pub const WINTRUST_DATA_PROVIDER_FLAGS = enum(u32) {
|
|
USE_IE4_TRUST_FLAG = 1,
|
|
NO_IE4_CHAIN_FLAG = 2,
|
|
NO_POLICY_USAGE_FLAG = 4,
|
|
REVOCATION_CHECK_NONE = 16,
|
|
REVOCATION_CHECK_END_CERT = 32,
|
|
REVOCATION_CHECK_CHAIN = 64,
|
|
REVOCATION_CHECK_CHAIN_EXCLUDE_ROOT = 128,
|
|
SAFER_FLAG = 256,
|
|
HASH_ONLY_FLAG = 512,
|
|
USE_DEFAULT_OSVER_CHECK = 1024,
|
|
LIFETIME_SIGNING_FLAG = 2048,
|
|
CACHE_ONLY_URL_RETRIEVAL = 4096,
|
|
DISABLE_MD2_MD4 = 8192,
|
|
MOTW = 16384,
|
|
_,
|
|
pub fn initFlags(o: struct {
|
|
USE_IE4_TRUST_FLAG: u1 = 0,
|
|
NO_IE4_CHAIN_FLAG: u1 = 0,
|
|
NO_POLICY_USAGE_FLAG: u1 = 0,
|
|
REVOCATION_CHECK_NONE: u1 = 0,
|
|
REVOCATION_CHECK_END_CERT: u1 = 0,
|
|
REVOCATION_CHECK_CHAIN: u1 = 0,
|
|
REVOCATION_CHECK_CHAIN_EXCLUDE_ROOT: u1 = 0,
|
|
SAFER_FLAG: u1 = 0,
|
|
HASH_ONLY_FLAG: u1 = 0,
|
|
USE_DEFAULT_OSVER_CHECK: u1 = 0,
|
|
LIFETIME_SIGNING_FLAG: u1 = 0,
|
|
CACHE_ONLY_URL_RETRIEVAL: u1 = 0,
|
|
DISABLE_MD2_MD4: u1 = 0,
|
|
MOTW: u1 = 0,
|
|
}) WINTRUST_DATA_PROVIDER_FLAGS {
|
|
return @as(WINTRUST_DATA_PROVIDER_FLAGS, @enumFromInt(
|
|
(if (o.USE_IE4_TRUST_FLAG == 1) @intFromEnum(WINTRUST_DATA_PROVIDER_FLAGS.USE_IE4_TRUST_FLAG) else 0)
|
|
| (if (o.NO_IE4_CHAIN_FLAG == 1) @intFromEnum(WINTRUST_DATA_PROVIDER_FLAGS.NO_IE4_CHAIN_FLAG) else 0)
|
|
| (if (o.NO_POLICY_USAGE_FLAG == 1) @intFromEnum(WINTRUST_DATA_PROVIDER_FLAGS.NO_POLICY_USAGE_FLAG) else 0)
|
|
| (if (o.REVOCATION_CHECK_NONE == 1) @intFromEnum(WINTRUST_DATA_PROVIDER_FLAGS.REVOCATION_CHECK_NONE) else 0)
|
|
| (if (o.REVOCATION_CHECK_END_CERT == 1) @intFromEnum(WINTRUST_DATA_PROVIDER_FLAGS.REVOCATION_CHECK_END_CERT) else 0)
|
|
| (if (o.REVOCATION_CHECK_CHAIN == 1) @intFromEnum(WINTRUST_DATA_PROVIDER_FLAGS.REVOCATION_CHECK_CHAIN) else 0)
|
|
| (if (o.REVOCATION_CHECK_CHAIN_EXCLUDE_ROOT == 1) @intFromEnum(WINTRUST_DATA_PROVIDER_FLAGS.REVOCATION_CHECK_CHAIN_EXCLUDE_ROOT) else 0)
|
|
| (if (o.SAFER_FLAG == 1) @intFromEnum(WINTRUST_DATA_PROVIDER_FLAGS.SAFER_FLAG) else 0)
|
|
| (if (o.HASH_ONLY_FLAG == 1) @intFromEnum(WINTRUST_DATA_PROVIDER_FLAGS.HASH_ONLY_FLAG) else 0)
|
|
| (if (o.USE_DEFAULT_OSVER_CHECK == 1) @intFromEnum(WINTRUST_DATA_PROVIDER_FLAGS.USE_DEFAULT_OSVER_CHECK) else 0)
|
|
| (if (o.LIFETIME_SIGNING_FLAG == 1) @intFromEnum(WINTRUST_DATA_PROVIDER_FLAGS.LIFETIME_SIGNING_FLAG) else 0)
|
|
| (if (o.CACHE_ONLY_URL_RETRIEVAL == 1) @intFromEnum(WINTRUST_DATA_PROVIDER_FLAGS.CACHE_ONLY_URL_RETRIEVAL) else 0)
|
|
| (if (o.DISABLE_MD2_MD4 == 1) @intFromEnum(WINTRUST_DATA_PROVIDER_FLAGS.DISABLE_MD2_MD4) else 0)
|
|
| (if (o.MOTW == 1) @intFromEnum(WINTRUST_DATA_PROVIDER_FLAGS.MOTW) else 0)
|
|
));
|
|
}
|
|
};
|
|
pub const WTD_USE_IE4_TRUST_FLAG = WINTRUST_DATA_PROVIDER_FLAGS.USE_IE4_TRUST_FLAG;
|
|
pub const WTD_NO_IE4_CHAIN_FLAG = WINTRUST_DATA_PROVIDER_FLAGS.NO_IE4_CHAIN_FLAG;
|
|
pub const WTD_NO_POLICY_USAGE_FLAG = WINTRUST_DATA_PROVIDER_FLAGS.NO_POLICY_USAGE_FLAG;
|
|
pub const WTD_REVOCATION_CHECK_NONE = WINTRUST_DATA_PROVIDER_FLAGS.REVOCATION_CHECK_NONE;
|
|
pub const WTD_REVOCATION_CHECK_END_CERT = WINTRUST_DATA_PROVIDER_FLAGS.REVOCATION_CHECK_END_CERT;
|
|
pub const WTD_REVOCATION_CHECK_CHAIN = WINTRUST_DATA_PROVIDER_FLAGS.REVOCATION_CHECK_CHAIN;
|
|
pub const WTD_REVOCATION_CHECK_CHAIN_EXCLUDE_ROOT = WINTRUST_DATA_PROVIDER_FLAGS.REVOCATION_CHECK_CHAIN_EXCLUDE_ROOT;
|
|
pub const WTD_SAFER_FLAG = WINTRUST_DATA_PROVIDER_FLAGS.SAFER_FLAG;
|
|
pub const WTD_HASH_ONLY_FLAG = WINTRUST_DATA_PROVIDER_FLAGS.HASH_ONLY_FLAG;
|
|
pub const WTD_USE_DEFAULT_OSVER_CHECK = WINTRUST_DATA_PROVIDER_FLAGS.USE_DEFAULT_OSVER_CHECK;
|
|
pub const WTD_LIFETIME_SIGNING_FLAG = WINTRUST_DATA_PROVIDER_FLAGS.LIFETIME_SIGNING_FLAG;
|
|
pub const WTD_CACHE_ONLY_URL_RETRIEVAL = WINTRUST_DATA_PROVIDER_FLAGS.CACHE_ONLY_URL_RETRIEVAL;
|
|
pub const WTD_DISABLE_MD2_MD4 = WINTRUST_DATA_PROVIDER_FLAGS.DISABLE_MD2_MD4;
|
|
pub const WTD_MOTW = WINTRUST_DATA_PROVIDER_FLAGS.MOTW;
|
|
|
|
pub const WINTRUST_DATA_UICHOICE = enum(u32) {
|
|
ALL = 1,
|
|
NONE = 2,
|
|
NOBAD = 3,
|
|
NOGOOD = 4,
|
|
};
|
|
pub const WTD_UI_ALL = WINTRUST_DATA_UICHOICE.ALL;
|
|
pub const WTD_UI_NONE = WINTRUST_DATA_UICHOICE.NONE;
|
|
pub const WTD_UI_NOBAD = WINTRUST_DATA_UICHOICE.NOBAD;
|
|
pub const WTD_UI_NOGOOD = WINTRUST_DATA_UICHOICE.NOGOOD;
|
|
|
|
pub const WINTRUST_SIGNATURE_SETTINGS_FLAGS = enum(u32) {
|
|
VERIFY_SPECIFIC = 1,
|
|
GET_SECONDARY_SIG_COUNT = 2,
|
|
};
|
|
pub const WSS_VERIFY_SPECIFIC = WINTRUST_SIGNATURE_SETTINGS_FLAGS.VERIFY_SPECIFIC;
|
|
pub const WSS_GET_SECONDARY_SIG_COUNT = WINTRUST_SIGNATURE_SETTINGS_FLAGS.GET_SECONDARY_SIG_COUNT;
|
|
|
|
pub const WINTRUST_DATA_STATE_ACTION = enum(u32) {
|
|
IGNORE = 0,
|
|
VERIFY = 1,
|
|
CLOSE = 2,
|
|
AUTO_CACHE = 3,
|
|
AUTO_CACHE_FLUSH = 4,
|
|
};
|
|
pub const WTD_STATEACTION_IGNORE = WINTRUST_DATA_STATE_ACTION.IGNORE;
|
|
pub const WTD_STATEACTION_VERIFY = WINTRUST_DATA_STATE_ACTION.VERIFY;
|
|
pub const WTD_STATEACTION_CLOSE = WINTRUST_DATA_STATE_ACTION.CLOSE;
|
|
pub const WTD_STATEACTION_AUTO_CACHE = WINTRUST_DATA_STATE_ACTION.AUTO_CACHE;
|
|
pub const WTD_STATEACTION_AUTO_CACHE_FLUSH = WINTRUST_DATA_STATE_ACTION.AUTO_CACHE_FLUSH;
|
|
|
|
pub const WINTRUST_DATA_UNION_CHOICE = enum(u32) {
|
|
FILE = 1,
|
|
CATALOG = 2,
|
|
BLOB = 3,
|
|
SIGNER = 4,
|
|
CERT = 5,
|
|
};
|
|
pub const WTD_CHOICE_FILE = WINTRUST_DATA_UNION_CHOICE.FILE;
|
|
pub const WTD_CHOICE_CATALOG = WINTRUST_DATA_UNION_CHOICE.CATALOG;
|
|
pub const WTD_CHOICE_BLOB = WINTRUST_DATA_UNION_CHOICE.BLOB;
|
|
pub const WTD_CHOICE_SIGNER = WINTRUST_DATA_UNION_CHOICE.SIGNER;
|
|
pub const WTD_CHOICE_CERT = WINTRUST_DATA_UNION_CHOICE.CERT;
|
|
|
|
pub const WINTRUST_DATA_REVOCATION_CHECKS = enum(u32) {
|
|
NONE = 0,
|
|
WHOLECHAIN = 1,
|
|
};
|
|
pub const WTD_REVOKE_NONE = WINTRUST_DATA_REVOCATION_CHECKS.NONE;
|
|
pub const WTD_REVOKE_WHOLECHAIN = WINTRUST_DATA_REVOCATION_CHECKS.WHOLECHAIN;
|
|
|
|
pub const WINTRUST_DATA_UICONTEXT = enum(u32) {
|
|
EXECUTE = 0,
|
|
INSTALL = 1,
|
|
};
|
|
pub const WTD_UICONTEXT_EXECUTE = WINTRUST_DATA_UICONTEXT.EXECUTE;
|
|
pub const WTD_UICONTEXT_INSTALL = WINTRUST_DATA_UICONTEXT.INSTALL;
|
|
|
|
pub const WINTRUST_DATA = extern struct {
|
|
cbStruct: u32,
|
|
pPolicyCallbackData: ?*anyopaque,
|
|
pSIPClientData: ?*anyopaque,
|
|
dwUIChoice: WINTRUST_DATA_UICHOICE,
|
|
fdwRevocationChecks: WINTRUST_DATA_REVOCATION_CHECKS,
|
|
dwUnionChoice: WINTRUST_DATA_UNION_CHOICE,
|
|
Anonymous: extern union {
|
|
pFile: ?*WINTRUST_FILE_INFO,
|
|
pCatalog: ?*WINTRUST_CATALOG_INFO,
|
|
pBlob: ?*WINTRUST_BLOB_INFO,
|
|
pSgnr: ?*WINTRUST_SGNR_INFO,
|
|
pCert: ?*WINTRUST_CERT_INFO,
|
|
},
|
|
dwStateAction: WINTRUST_DATA_STATE_ACTION,
|
|
hWVTStateData: ?HANDLE,
|
|
pwszURLReference: ?PWSTR,
|
|
dwProvFlags: WINTRUST_DATA_PROVIDER_FLAGS,
|
|
dwUIContext: WINTRUST_DATA_UICONTEXT,
|
|
pSignatureSettings: ?*WINTRUST_SIGNATURE_SETTINGS,
|
|
};
|
|
|
|
pub const WINTRUST_SIGNATURE_SETTINGS = extern struct {
|
|
cbStruct: u32,
|
|
dwIndex: u32,
|
|
dwFlags: WINTRUST_SIGNATURE_SETTINGS_FLAGS,
|
|
cSecondarySigs: u32,
|
|
dwVerifiedSigIndex: u32,
|
|
pCryptoPolicy: ?*CERT_STRONG_SIGN_PARA,
|
|
};
|
|
|
|
pub const WINTRUST_FILE_INFO = extern struct {
|
|
cbStruct: u32,
|
|
pcwszFilePath: ?[*:0]const u16,
|
|
hFile: ?HANDLE,
|
|
pgKnownSubject: ?*Guid,
|
|
};
|
|
|
|
pub const WINTRUST_CATALOG_INFO = extern struct {
|
|
cbStruct: u32,
|
|
dwCatalogVersion: u32,
|
|
pcwszCatalogFilePath: ?[*:0]const u16,
|
|
pcwszMemberTag: ?[*:0]const u16,
|
|
pcwszMemberFilePath: ?[*:0]const u16,
|
|
hMemberFile: ?HANDLE,
|
|
pbCalculatedFileHash: ?*u8,
|
|
cbCalculatedFileHash: u32,
|
|
pcCatalogContext: ?*CTL_CONTEXT,
|
|
hCatAdmin: isize,
|
|
};
|
|
|
|
pub const WINTRUST_BLOB_INFO = extern struct {
|
|
cbStruct: u32,
|
|
gSubject: Guid,
|
|
pcwszDisplayName: ?[*:0]const u16,
|
|
cbMemObject: u32,
|
|
pbMemObject: ?*u8,
|
|
cbMemSignedMsg: u32,
|
|
pbMemSignedMsg: ?*u8,
|
|
};
|
|
|
|
pub const WINTRUST_SGNR_INFO = extern struct {
|
|
cbStruct: u32,
|
|
pcwszDisplayName: ?[*:0]const u16,
|
|
psSignerInfo: ?*CMSG_SIGNER_INFO,
|
|
chStores: u32,
|
|
pahStores: ?*?HCERTSTORE,
|
|
};
|
|
|
|
pub const WINTRUST_CERT_INFO = extern struct {
|
|
cbStruct: u32,
|
|
pcwszDisplayName: ?[*:0]const u16,
|
|
psCertContext: ?*CERT_CONTEXT,
|
|
chStores: u32,
|
|
pahStores: ?*?HCERTSTORE,
|
|
dwFlags: u32,
|
|
psftVerifyAsOf: ?*FILETIME,
|
|
};
|
|
|
|
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
|
|
pub const PFN_CPD_MEM_ALLOC = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
|
|
|
|
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
|
|
pub const PFN_CPD_MEM_FREE = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
|
|
|
|
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
|
|
pub const PFN_CPD_ADD_STORE = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
|
|
|
|
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
|
|
pub const PFN_CPD_ADD_SGNR = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
|
|
|
|
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
|
|
pub const PFN_CPD_ADD_CERT = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
|
|
|
|
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
|
|
pub const PFN_CPD_ADD_PRIVDATA = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
|
|
|
|
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
|
|
pub const PFN_PROVIDER_INIT_CALL = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
|
|
|
|
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
|
|
pub const PFN_PROVIDER_OBJTRUST_CALL = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
|
|
|
|
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
|
|
pub const PFN_PROVIDER_SIGTRUST_CALL = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
|
|
|
|
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
|
|
pub const PFN_PROVIDER_CERTTRUST_CALL = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
|
|
|
|
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
|
|
pub const PFN_PROVIDER_FINALPOLICY_CALL = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
|
|
|
|
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
|
|
pub const PFN_PROVIDER_TESTFINALPOLICY_CALL = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
|
|
|
|
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
|
|
pub const PFN_PROVIDER_CLEANUP_CALL = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
|
|
|
|
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
|
|
pub const PFN_PROVIDER_CERTCHKPOLICY_CALL = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
|
|
|
|
pub const CRYPT_PROVIDER_DATA = extern struct {
|
|
cbStruct: u32,
|
|
pWintrustData: ?*WINTRUST_DATA,
|
|
fOpenedFile: BOOL,
|
|
hWndParent: ?HWND,
|
|
pgActionID: ?*Guid,
|
|
hProv: usize,
|
|
dwError: u32,
|
|
dwRegSecuritySettings: u32,
|
|
dwRegPolicySettings: u32,
|
|
psPfns: ?*CRYPT_PROVIDER_FUNCTIONS,
|
|
cdwTrustStepErrors: u32,
|
|
padwTrustStepErrors: ?*u32,
|
|
chStores: u32,
|
|
pahStores: ?*?HCERTSTORE,
|
|
dwEncoding: u32,
|
|
hMsg: ?*anyopaque,
|
|
csSigners: u32,
|
|
pasSigners: ?*CRYPT_PROVIDER_SGNR,
|
|
csProvPrivData: u32,
|
|
pasProvPrivData: ?*CRYPT_PROVIDER_PRIVDATA,
|
|
dwSubjectChoice: u32,
|
|
Anonymous: extern union {
|
|
pPDSip: ?*PROVDATA_SIP,
|
|
},
|
|
pszUsageOID: ?PSTR,
|
|
fRecallWithState: BOOL,
|
|
sftSystemTime: FILETIME,
|
|
pszCTLSignerUsageOID: ?PSTR,
|
|
dwProvFlags: u32,
|
|
dwFinalError: u32,
|
|
pRequestUsage: ?*CERT_USAGE_MATCH,
|
|
dwTrustPubSettings: u32,
|
|
dwUIStateFlags: u32,
|
|
pSigState: ?*CRYPT_PROVIDER_SIGSTATE,
|
|
pSigSettings: ?*WINTRUST_SIGNATURE_SETTINGS,
|
|
};
|
|
|
|
pub const CRYPT_PROVIDER_SIGSTATE = extern struct {
|
|
cbStruct: u32,
|
|
rhSecondarySigs: ?*?*anyopaque,
|
|
hPrimarySig: ?*anyopaque,
|
|
fFirstAttemptMade: BOOL,
|
|
fNoMoreSigs: BOOL,
|
|
cSecondarySigs: u32,
|
|
dwCurrentIndex: u32,
|
|
fSupportMultiSig: BOOL,
|
|
dwCryptoPolicySupport: u32,
|
|
iAttemptCount: u32,
|
|
fCheckedSealing: BOOL,
|
|
pSealingSignature: ?*SEALING_SIGNATURE_ATTRIBUTE,
|
|
};
|
|
|
|
pub const CRYPT_PROVIDER_FUNCTIONS = extern struct {
|
|
cbStruct: u32,
|
|
pfnAlloc: ?PFN_CPD_MEM_ALLOC,
|
|
pfnFree: ?PFN_CPD_MEM_FREE,
|
|
pfnAddStore2Chain: ?PFN_CPD_ADD_STORE,
|
|
pfnAddSgnr2Chain: ?PFN_CPD_ADD_SGNR,
|
|
pfnAddCert2Chain: ?PFN_CPD_ADD_CERT,
|
|
pfnAddPrivData2Chain: ?PFN_CPD_ADD_PRIVDATA,
|
|
pfnInitialize: ?PFN_PROVIDER_INIT_CALL,
|
|
pfnObjectTrust: ?PFN_PROVIDER_OBJTRUST_CALL,
|
|
pfnSignatureTrust: ?PFN_PROVIDER_SIGTRUST_CALL,
|
|
pfnCertificateTrust: ?PFN_PROVIDER_CERTTRUST_CALL,
|
|
pfnFinalPolicy: ?PFN_PROVIDER_FINALPOLICY_CALL,
|
|
pfnCertCheckPolicy: ?PFN_PROVIDER_CERTCHKPOLICY_CALL,
|
|
pfnTestFinalPolicy: ?PFN_PROVIDER_TESTFINALPOLICY_CALL,
|
|
psUIpfns: ?*CRYPT_PROVUI_FUNCS,
|
|
pfnCleanupPolicy: ?PFN_PROVIDER_CLEANUP_CALL,
|
|
};
|
|
|
|
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
|
|
pub const PFN_PROVUI_CALL = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
|
|
|
|
pub const CRYPT_PROVUI_FUNCS = extern struct {
|
|
cbStruct: u32,
|
|
psUIData: ?*CRYPT_PROVUI_DATA,
|
|
pfnOnMoreInfoClick: ?PFN_PROVUI_CALL,
|
|
pfnOnMoreInfoClickDefault: ?PFN_PROVUI_CALL,
|
|
pfnOnAdvancedClick: ?PFN_PROVUI_CALL,
|
|
pfnOnAdvancedClickDefault: ?PFN_PROVUI_CALL,
|
|
};
|
|
|
|
pub const CRYPT_PROVUI_DATA = extern struct {
|
|
cbStruct: u32,
|
|
dwFinalError: u32,
|
|
pYesButtonText: ?PWSTR,
|
|
pNoButtonText: ?PWSTR,
|
|
pMoreInfoButtonText: ?PWSTR,
|
|
pAdvancedLinkText: ?PWSTR,
|
|
pCopyActionText: ?PWSTR,
|
|
pCopyActionTextNoTS: ?PWSTR,
|
|
pCopyActionTextNotSigned: ?PWSTR,
|
|
};
|
|
|
|
pub const CRYPT_PROVIDER_SGNR = extern struct {
|
|
cbStruct: u32,
|
|
sftVerifyAsOf: FILETIME,
|
|
csCertChain: u32,
|
|
pasCertChain: ?*CRYPT_PROVIDER_CERT,
|
|
dwSignerType: u32,
|
|
psSigner: ?*CMSG_SIGNER_INFO,
|
|
dwError: u32,
|
|
csCounterSigners: u32,
|
|
pasCounterSigners: ?*CRYPT_PROVIDER_SGNR,
|
|
pChainContext: ?*CERT_CHAIN_CONTEXT,
|
|
};
|
|
|
|
pub const CRYPT_PROVIDER_CERT = extern struct {
|
|
cbStruct: u32,
|
|
pCert: ?*const CERT_CONTEXT,
|
|
fCommercial: BOOL,
|
|
fTrustedRoot: BOOL,
|
|
fSelfSigned: BOOL,
|
|
fTestCert: BOOL,
|
|
dwRevokedReason: u32,
|
|
dwConfidence: u32,
|
|
dwError: u32,
|
|
pTrustListContext: ?*CTL_CONTEXT,
|
|
fTrustListSignerCert: BOOL,
|
|
pCtlContext: ?*CTL_CONTEXT,
|
|
dwCtlError: u32,
|
|
fIsCyclic: BOOL,
|
|
pChainElement: ?*CERT_CHAIN_ELEMENT,
|
|
};
|
|
|
|
pub const CRYPT_PROVIDER_PRIVDATA = extern struct {
|
|
cbStruct: u32,
|
|
gProviderID: Guid,
|
|
cbProvData: u32,
|
|
pvProvData: ?*anyopaque,
|
|
};
|
|
|
|
pub const PROVDATA_SIP = extern struct {
|
|
cbStruct: u32,
|
|
gSubject: Guid,
|
|
pSip: ?*SIP_DISPATCH_INFO,
|
|
pCATSip: ?*SIP_DISPATCH_INFO,
|
|
psSipSubjectInfo: ?*SIP_SUBJECTINFO,
|
|
psSipCATSubjectInfo: ?*SIP_SUBJECTINFO,
|
|
psIndirectData: ?*SIP_INDIRECT_DATA,
|
|
};
|
|
|
|
pub const CRYPT_TRUST_REG_ENTRY = extern struct {
|
|
cbStruct: u32,
|
|
pwszDLLName: ?PWSTR,
|
|
pwszFunctionName: ?PWSTR,
|
|
};
|
|
|
|
pub const CRYPT_REGISTER_ACTIONID = extern struct {
|
|
cbStruct: u32,
|
|
sInitProvider: CRYPT_TRUST_REG_ENTRY,
|
|
sObjectProvider: CRYPT_TRUST_REG_ENTRY,
|
|
sSignatureProvider: CRYPT_TRUST_REG_ENTRY,
|
|
sCertificateProvider: CRYPT_TRUST_REG_ENTRY,
|
|
sCertificatePolicyProvider: CRYPT_TRUST_REG_ENTRY,
|
|
sFinalPolicyProvider: CRYPT_TRUST_REG_ENTRY,
|
|
sTestPolicyProvider: CRYPT_TRUST_REG_ENTRY,
|
|
sCleanupProvider: CRYPT_TRUST_REG_ENTRY,
|
|
};
|
|
|
|
pub const PFN_ALLOCANDFILLDEFUSAGE = switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
pszUsageOID: ?[*:0]const u8,
|
|
psDefUsage: ?*CRYPT_PROVIDER_DEFUSAGE,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL,
|
|
else => *const fn(
|
|
pszUsageOID: ?[*:0]const u8,
|
|
psDefUsage: ?*CRYPT_PROVIDER_DEFUSAGE,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL,
|
|
} ;
|
|
|
|
pub const PFN_FREEDEFUSAGE = switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
pszUsageOID: ?[*:0]const u8,
|
|
psDefUsage: ?*CRYPT_PROVIDER_DEFUSAGE,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL,
|
|
else => *const fn(
|
|
pszUsageOID: ?[*:0]const u8,
|
|
psDefUsage: ?*CRYPT_PROVIDER_DEFUSAGE,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL,
|
|
} ;
|
|
|
|
pub const CRYPT_PROVIDER_REGDEFUSAGE = extern struct {
|
|
cbStruct: u32,
|
|
pgActionID: ?*Guid,
|
|
pwszDllName: ?PWSTR,
|
|
pwszLoadCallbackDataFunctionName: ?PSTR,
|
|
pwszFreeCallbackDataFunctionName: ?PSTR,
|
|
};
|
|
|
|
pub const CRYPT_PROVIDER_DEFUSAGE = extern struct {
|
|
cbStruct: u32,
|
|
gActionID: Guid,
|
|
pDefPolicyCallbackData: ?*anyopaque,
|
|
pDefSIPClientData: ?*anyopaque,
|
|
};
|
|
|
|
pub const SPC_SERIALIZED_OBJECT = extern struct {
|
|
ClassId: [16]u8,
|
|
SerializedData: CRYPTOAPI_BLOB,
|
|
};
|
|
|
|
pub const SPC_SIGINFO = extern struct {
|
|
dwSipVersion: u32,
|
|
gSIPGuid: Guid,
|
|
dwReserved1: u32,
|
|
dwReserved2: u32,
|
|
dwReserved3: u32,
|
|
dwReserved4: u32,
|
|
dwReserved5: u32,
|
|
};
|
|
|
|
pub const SPC_LINK = extern struct {
|
|
dwLinkChoice: u32,
|
|
Anonymous: extern union {
|
|
pwszUrl: ?PWSTR,
|
|
Moniker: SPC_SERIALIZED_OBJECT,
|
|
pwszFile: ?PWSTR,
|
|
},
|
|
};
|
|
|
|
pub const SPC_PE_IMAGE_DATA = extern struct {
|
|
Flags: CRYPT_BIT_BLOB,
|
|
pFile: ?*SPC_LINK,
|
|
};
|
|
|
|
pub const SPC_INDIRECT_DATA_CONTENT = extern struct {
|
|
Data: CRYPT_ATTRIBUTE_TYPE_VALUE,
|
|
DigestAlgorithm: CRYPT_ALGORITHM_IDENTIFIER,
|
|
Digest: CRYPTOAPI_BLOB,
|
|
};
|
|
|
|
pub const SPC_FINANCIAL_CRITERIA = extern struct {
|
|
fFinancialInfoAvailable: BOOL,
|
|
fMeetsCriteria: BOOL,
|
|
};
|
|
|
|
pub const SPC_IMAGE = extern struct {
|
|
pImageLink: ?*SPC_LINK,
|
|
Bitmap: CRYPTOAPI_BLOB,
|
|
Metafile: CRYPTOAPI_BLOB,
|
|
EnhancedMetafile: CRYPTOAPI_BLOB,
|
|
GifFile: CRYPTOAPI_BLOB,
|
|
};
|
|
|
|
pub const SPC_SP_AGENCY_INFO = extern struct {
|
|
pPolicyInformation: ?*SPC_LINK,
|
|
pwszPolicyDisplayText: ?PWSTR,
|
|
pLogoImage: ?*SPC_IMAGE,
|
|
pLogoLink: ?*SPC_LINK,
|
|
};
|
|
|
|
pub const SPC_STATEMENT_TYPE = extern struct {
|
|
cKeyPurposeId: u32,
|
|
rgpszKeyPurposeId: ?*?PSTR,
|
|
};
|
|
|
|
pub const SPC_SP_OPUS_INFO = extern struct {
|
|
pwszProgramName: ?[*:0]const u16,
|
|
pMoreInfo: ?*SPC_LINK,
|
|
pPublisherInfo: ?*SPC_LINK,
|
|
};
|
|
|
|
pub const CAT_NAMEVALUE = extern struct {
|
|
pwszTag: ?PWSTR,
|
|
fdwFlags: u32,
|
|
Value: CRYPTOAPI_BLOB,
|
|
};
|
|
|
|
pub const CAT_MEMBERINFO = extern struct {
|
|
pwszSubjGuid: ?PWSTR,
|
|
dwCertVersion: u32,
|
|
};
|
|
|
|
pub const CAT_MEMBERINFO2 = extern struct {
|
|
SubjectGuid: Guid,
|
|
dwCertVersion: u32,
|
|
};
|
|
|
|
pub const INTENT_TO_SEAL_ATTRIBUTE = extern struct {
|
|
version: u32,
|
|
seal: BOOLEAN,
|
|
};
|
|
|
|
pub const SEALING_SIGNATURE_ATTRIBUTE = extern struct {
|
|
version: u32,
|
|
signerIndex: u32,
|
|
signatureAlgorithm: CRYPT_ALGORITHM_IDENTIFIER,
|
|
encryptedDigest: CRYPTOAPI_BLOB,
|
|
};
|
|
|
|
pub const SEALING_TIMESTAMP_ATTRIBUTE = extern struct {
|
|
version: u32,
|
|
signerIndex: u32,
|
|
sealTimeStampToken: CRYPTOAPI_BLOB,
|
|
};
|
|
|
|
pub const WIN_CERTIFICATE = extern struct {
|
|
dwLength: u32,
|
|
wRevision: u16,
|
|
wCertificateType: u16,
|
|
bCertificate: [1]u8,
|
|
};
|
|
|
|
pub const WIN_TRUST_ACTDATA_CONTEXT_WITH_SUBJECT = extern struct {
|
|
hClientToken: ?HANDLE,
|
|
SubjectType: ?*Guid,
|
|
Subject: ?*anyopaque,
|
|
};
|
|
|
|
pub const WIN_TRUST_ACTDATA_SUBJECT_ONLY = extern struct {
|
|
SubjectType: ?*Guid,
|
|
Subject: ?*anyopaque,
|
|
};
|
|
|
|
pub const WIN_TRUST_SUBJECT_FILE = extern struct {
|
|
hFile: ?HANDLE,
|
|
lpPath: ?[*:0]const u16,
|
|
};
|
|
|
|
pub const WIN_TRUST_SUBJECT_FILE_AND_DISPLAY = extern struct {
|
|
hFile: ?HANDLE,
|
|
lpPath: ?[*:0]const u16,
|
|
lpDisplayName: ?[*:0]const u16,
|
|
};
|
|
|
|
pub const WIN_SPUB_TRUSTED_PUBLISHER_DATA = extern struct {
|
|
hClientToken: ?HANDLE,
|
|
lpCertificate: ?*WIN_CERTIFICATE,
|
|
};
|
|
|
|
pub const WTD_GENERIC_CHAIN_POLICY_SIGNER_INFO = extern struct {
|
|
Anonymous: extern union {
|
|
cbStruct: u32,
|
|
cbSize: u32,
|
|
},
|
|
pChainContext: ?*CERT_CHAIN_CONTEXT,
|
|
dwSignerType: u32,
|
|
pMsgSignerInfo: ?*CMSG_SIGNER_INFO,
|
|
dwError: u32,
|
|
cCounterSigner: u32,
|
|
rgpCounterSigner: ?*?*WTD_GENERIC_CHAIN_POLICY_SIGNER_INFO,
|
|
};
|
|
|
|
pub const PFN_WTD_GENERIC_CHAIN_POLICY_CALLBACK = switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
pProvData: ?*CRYPT_PROVIDER_DATA,
|
|
dwStepError: u32,
|
|
dwRegPolicySettings: u32,
|
|
cSigner: u32,
|
|
rgpSigner: ?*?*WTD_GENERIC_CHAIN_POLICY_SIGNER_INFO,
|
|
pvPolicyArg: ?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
pProvData: ?*CRYPT_PROVIDER_DATA,
|
|
dwStepError: u32,
|
|
dwRegPolicySettings: u32,
|
|
cSigner: u32,
|
|
rgpSigner: ?*?*WTD_GENERIC_CHAIN_POLICY_SIGNER_INFO,
|
|
pvPolicyArg: ?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
} ;
|
|
|
|
pub const WTD_GENERIC_CHAIN_POLICY_CREATE_INFO = extern struct {
|
|
Anonymous: extern union {
|
|
cbStruct: u32,
|
|
cbSize: u32,
|
|
},
|
|
hChainEngine: ?HCERTCHAINENGINE,
|
|
pChainPara: ?*CERT_CHAIN_PARA,
|
|
dwFlags: u32,
|
|
pvReserved: ?*anyopaque,
|
|
};
|
|
|
|
pub const WTD_GENERIC_CHAIN_POLICY_DATA = extern struct {
|
|
Anonymous: extern union {
|
|
cbStruct: u32,
|
|
cbSize: u32,
|
|
},
|
|
pSignerChainInfo: ?*WTD_GENERIC_CHAIN_POLICY_CREATE_INFO,
|
|
pCounterSignerChainInfo: ?*WTD_GENERIC_CHAIN_POLICY_CREATE_INFO,
|
|
pfnPolicyCallback: ?PFN_WTD_GENERIC_CHAIN_POLICY_CALLBACK,
|
|
pvPolicyArg: ?*anyopaque,
|
|
};
|
|
|
|
pub const DRIVER_VER_MAJORMINOR = extern struct {
|
|
dwMajor: u32,
|
|
dwMinor: u32,
|
|
};
|
|
|
|
pub const DRIVER_VER_INFO = extern struct {
|
|
cbStruct: u32,
|
|
dwReserved1: usize,
|
|
dwReserved2: usize,
|
|
dwPlatform: u32,
|
|
dwVersion: u32,
|
|
wszVersion: [260]u16,
|
|
wszSignedBy: [260]u16,
|
|
pcSignerCertContext: ?*const CERT_CONTEXT,
|
|
sOSVersionLow: DRIVER_VER_MAJORMINOR,
|
|
sOSVersionHigh: DRIVER_VER_MAJORMINOR,
|
|
dwBuildNumberLow: u32,
|
|
dwBuildNumberHigh: u32,
|
|
};
|
|
|
|
pub const CONFIG_CI_PROV_INFO_RESULT = extern struct {
|
|
hr: HRESULT,
|
|
dwResult: u32,
|
|
dwPolicyIndex: u32,
|
|
fIsExplicitDeny: BOOLEAN,
|
|
};
|
|
|
|
pub const CONFIG_CI_PROV_INFO = extern struct {
|
|
cbSize: u32,
|
|
dwPolicies: u32,
|
|
pPolicies: ?*CRYPTOAPI_BLOB,
|
|
result: CONFIG_CI_PROV_INFO_RESULT,
|
|
dwScenario: u32,
|
|
};
|
|
|
|
|
|
//--------------------------------------------------------------------------------
|
|
// Section: Functions (18)
|
|
//--------------------------------------------------------------------------------
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "wintrust" fn WinVerifyTrust(
|
|
hwnd: ?HWND,
|
|
pgActionID: ?*Guid,
|
|
pWVTData: ?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) i32;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "wintrust" fn WinVerifyTrustEx(
|
|
hwnd: ?HWND,
|
|
pgActionID: ?*Guid,
|
|
pWinTrustData: ?*WINTRUST_DATA,
|
|
) callconv(@import("std").os.windows.WINAPI) i32;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "wintrust" fn WintrustGetRegPolicyFlags(
|
|
pdwPolicyFlags: ?*WINTRUST_POLICY_FLAGS,
|
|
) callconv(@import("std").os.windows.WINAPI) void;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "wintrust" fn WintrustSetRegPolicyFlags(
|
|
dwPolicyFlags: WINTRUST_POLICY_FLAGS,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "wintrust" fn WintrustAddActionID(
|
|
pgActionID: ?*Guid,
|
|
fdwFlags: u32,
|
|
psProvInfo: ?*CRYPT_REGISTER_ACTIONID,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "wintrust" fn WintrustRemoveActionID(
|
|
pgActionID: ?*Guid,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "wintrust" fn WintrustLoadFunctionPointers(
|
|
pgActionID: ?*Guid,
|
|
pPfns: ?*CRYPT_PROVIDER_FUNCTIONS,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "wintrust" fn WintrustAddDefaultForUsage(
|
|
pszUsageOID: ?[*:0]const u8,
|
|
psDefUsage: ?*CRYPT_PROVIDER_REGDEFUSAGE,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "wintrust" fn WintrustGetDefaultForUsage(
|
|
dwAction: WINTRUST_GET_DEFAULT_FOR_USAGE_ACTION,
|
|
pszUsageOID: ?[*:0]const u8,
|
|
psUsage: ?*CRYPT_PROVIDER_DEFUSAGE,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "wintrust" fn WTHelperGetProvSignerFromChain(
|
|
pProvData: ?*CRYPT_PROVIDER_DATA,
|
|
idxSigner: u32,
|
|
fCounterSigner: BOOL,
|
|
idxCounterSigner: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) ?*CRYPT_PROVIDER_SGNR;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "wintrust" fn WTHelperGetProvCertFromChain(
|
|
pSgnr: ?*CRYPT_PROVIDER_SGNR,
|
|
idxCert: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) ?*CRYPT_PROVIDER_CERT;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "wintrust" fn WTHelperProvDataFromStateData(
|
|
hStateData: ?HANDLE,
|
|
) callconv(@import("std").os.windows.WINAPI) ?*CRYPT_PROVIDER_DATA;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "wintrust" fn WTHelperGetProvPrivateDataFromChain(
|
|
pProvData: ?*CRYPT_PROVIDER_DATA,
|
|
pgProviderID: ?*Guid,
|
|
) callconv(@import("std").os.windows.WINAPI) ?*CRYPT_PROVIDER_PRIVDATA;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "wintrust" fn WTHelperCertIsSelfSigned(
|
|
dwEncoding: u32,
|
|
pCert: ?*CERT_INFO,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "wintrust" fn WTHelperCertCheckValidSignature(
|
|
pProvData: ?*CRYPT_PROVIDER_DATA,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "wintrust" fn OpenPersonalTrustDBDialogEx(
|
|
hwndParent: ?HWND,
|
|
dwFlags: u32,
|
|
pvReserved: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "wintrust" fn OpenPersonalTrustDBDialog(
|
|
hwndParent: ?HWND,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "wintrust" fn WintrustSetDefaultIncludePEPageHashes(
|
|
fIncludePEPageHashes: BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) void;
|
|
|
|
|
|
//--------------------------------------------------------------------------------
|
|
// Section: Unicode Aliases (0)
|
|
//--------------------------------------------------------------------------------
|
|
const thismodule = @This();
|
|
pub usingnamespace switch (@import("../zig.zig").unicode_mode) {
|
|
.ansi => struct {
|
|
},
|
|
.wide => struct {
|
|
},
|
|
.unspecified => if (@import("builtin").is_test) struct {
|
|
} else struct {
|
|
},
|
|
};
|
|
//--------------------------------------------------------------------------------
|
|
// Section: Imports (27)
|
|
//--------------------------------------------------------------------------------
|
|
const Guid = @import("../zig.zig").Guid;
|
|
const BOOL = @import("../foundation.zig").BOOL;
|
|
const BOOLEAN = @import("../foundation.zig").BOOLEAN;
|
|
const CERT_CHAIN_CONTEXT = @import("../security/cryptography.zig").CERT_CHAIN_CONTEXT;
|
|
const CERT_CHAIN_ELEMENT = @import("../security/cryptography.zig").CERT_CHAIN_ELEMENT;
|
|
const CERT_CHAIN_PARA = @import("../security/cryptography.zig").CERT_CHAIN_PARA;
|
|
const CERT_CONTEXT = @import("../security/cryptography.zig").CERT_CONTEXT;
|
|
const CERT_INFO = @import("../security/cryptography.zig").CERT_INFO;
|
|
const CERT_STRONG_SIGN_PARA = @import("../security/cryptography.zig").CERT_STRONG_SIGN_PARA;
|
|
const CERT_USAGE_MATCH = @import("../security/cryptography.zig").CERT_USAGE_MATCH;
|
|
const CMSG_SIGNER_INFO = @import("../security/cryptography.zig").CMSG_SIGNER_INFO;
|
|
const CRYPT_ALGORITHM_IDENTIFIER = @import("../security/cryptography.zig").CRYPT_ALGORITHM_IDENTIFIER;
|
|
const CRYPT_ATTRIBUTE_TYPE_VALUE = @import("../security/cryptography.zig").CRYPT_ATTRIBUTE_TYPE_VALUE;
|
|
const CRYPT_BIT_BLOB = @import("../security/cryptography.zig").CRYPT_BIT_BLOB;
|
|
const CRYPTOAPI_BLOB = @import("../security/cryptography.zig").CRYPTOAPI_BLOB;
|
|
const CTL_CONTEXT = @import("../security/cryptography.zig").CTL_CONTEXT;
|
|
const FILETIME = @import("../foundation.zig").FILETIME;
|
|
const HANDLE = @import("../foundation.zig").HANDLE;
|
|
const HCERTCHAINENGINE = @import("../security/cryptography.zig").HCERTCHAINENGINE;
|
|
const HCERTSTORE = @import("../security/cryptography.zig").HCERTSTORE;
|
|
const HRESULT = @import("../foundation.zig").HRESULT;
|
|
const HWND = @import("../foundation.zig").HWND;
|
|
const PSTR = @import("../foundation.zig").PSTR;
|
|
const PWSTR = @import("../foundation.zig").PWSTR;
|
|
const SIP_DISPATCH_INFO = @import("../security/cryptography/sip.zig").SIP_DISPATCH_INFO;
|
|
const SIP_INDIRECT_DATA = @import("../security/cryptography/sip.zig").SIP_INDIRECT_DATA;
|
|
const SIP_SUBJECTINFO = @import("../security/cryptography/sip.zig").SIP_SUBJECTINFO;
|
|
|
|
test {
|
|
// The following '_ = <FuncPtrType>' lines are a workaround for https://github.com/ziglang/zig/issues/4476
|
|
if (@hasDecl(@This(), "PFN_ALLOCANDFILLDEFUSAGE")) { _ = PFN_ALLOCANDFILLDEFUSAGE; }
|
|
if (@hasDecl(@This(), "PFN_FREEDEFUSAGE")) { _ = PFN_FREEDEFUSAGE; }
|
|
if (@hasDecl(@This(), "PFN_WTD_GENERIC_CHAIN_POLICY_CALLBACK")) { _ = PFN_WTD_GENERIC_CHAIN_POLICY_CALLBACK; }
|
|
|
|
@setEvalBranchQuota(
|
|
comptime @import("std").meta.declarations(@This()).len * 3
|
|
);
|
|
|
|
// reference all the pub declarations
|
|
if (!@import("builtin").is_test) return;
|
|
inline for (comptime @import("std").meta.declarations(@This())) |decl| {
|
|
_ = @field(@This(), decl.name);
|
|
}
|
|
}
|