4e2933c620 2015-04-21 kinaba: /***********************************************************************\ 4e2933c620 2015-04-21 kinaba: * wincrypt.d * 4e2933c620 2015-04-21 kinaba: * * 4e2933c620 2015-04-21 kinaba: * Windows API header module * 4e2933c620 2015-04-21 kinaba: * * 4e2933c620 2015-04-21 kinaba: * Translated from MinGW Windows headers * 4e2933c620 2015-04-21 kinaba: * by Stewart Gordon * 4e2933c620 2015-04-21 kinaba: * * 4e2933c620 2015-04-21 kinaba: * Placed into public domain * 4e2933c620 2015-04-21 kinaba: \***********************************************************************/ 4e2933c620 2015-04-21 kinaba: module win32.wincrypt; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: private import win32.w32api, win32.winbase, win32.windef; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: /* FIXME: 4e2933c620 2015-04-21 kinaba: * Types of some constants 4e2933c620 2015-04-21 kinaba: * Types of macros 4e2933c620 2015-04-21 kinaba: * Inits of various "size" and "version" members 4e2933c620 2015-04-21 kinaba: * Why are some #ifdefs commented out? 4e2933c620 2015-04-21 kinaba: */ 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: const TCHAR[] 4e2933c620 2015-04-21 kinaba: MS_DEF_PROV = "Microsoft Base Cryptographic Provider v1.0", 4e2933c620 2015-04-21 kinaba: MS_ENHANCED_PROV = "Microsoft Enhanced Cryptographic Provider v1.0", 4e2933c620 2015-04-21 kinaba: MS_STRONG_PROV = "Microsoft Strong Cryptographic Provider", 4e2933c620 2015-04-21 kinaba: MS_DEF_RSA_SIG_PROV = "Microsoft RSA Signature Cryptographic Provider", 4e2933c620 2015-04-21 kinaba: MS_DEF_RSA_SCHANNEL_PROV = "Microsoft RSA SChannel Cryptographic Provider", 4e2933c620 2015-04-21 kinaba: MS_DEF_DSS_PROV = "Microsoft Base DSS Cryptographic Provider", 4e2933c620 2015-04-21 kinaba: MS_DEF_DSS_DH_PROV 4e2933c620 2015-04-21 kinaba: = "Microsoft Base DSS and Diffie-Hellman Cryptographic Provider", 4e2933c620 2015-04-21 kinaba: MS_ENH_DSS_DH_PROV 4e2933c620 2015-04-21 kinaba: = "Microsoft Enhanced DSS and Diffie-Hellman Cryptographic Provider", 4e2933c620 2015-04-21 kinaba: MS_DEF_DH_SCHANNEL_PROV = "Microsoft DH SChannel Cryptographic Provider", 4e2933c620 2015-04-21 kinaba: MS_SCARD_PROV = "Microsoft Base Smart Card Crypto Provider"; 4e2933c620 2015-04-21 kinaba: 9b639cf2d6 2015-05-05 kinaba: static if (_WIN32_WINNT > 0x501) { 4e2933c620 2015-04-21 kinaba: const TCHAR[] MS_ENH_RSA_AES_PROV 4e2933c620 2015-04-21 kinaba: = "Microsoft Enhanced RSA and AES Cryptographic Provider"; 9b639cf2d6 2015-05-05 kinaba: } else static if (_WIN32_WINNT == 0x501) { 4e2933c620 2015-04-21 kinaba: const TCHAR[] MS_ENH_RSA_AES_PROV 4e2933c620 2015-04-21 kinaba: = "Microsoft Enhanced RSA and AES Cryptographic Provider (Prototype)"; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: ALG_ID GET_ALG_CLASS(ALG_ID x) { return x & 0xE000; } 4e2933c620 2015-04-21 kinaba: ALG_ID GET_ALG_TYPE (ALG_ID x) { return x & 0x1E00; } 4e2933c620 2015-04-21 kinaba: ALG_ID GET_ALG_SID (ALG_ID x) { return x & 0x01FF; } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: enum : ALG_ID { 4e2933c620 2015-04-21 kinaba: ALG_CLASS_ANY = 0, 4e2933c620 2015-04-21 kinaba: ALG_CLASS_SIGNATURE = 0x2000, 4e2933c620 2015-04-21 kinaba: ALG_CLASS_MSG_ENCRYPT = 0x4000, 4e2933c620 2015-04-21 kinaba: ALG_CLASS_DATA_ENCRYPT = 0x6000, 4e2933c620 2015-04-21 kinaba: ALG_CLASS_HASH = 0x8000, 4e2933c620 2015-04-21 kinaba: ALG_CLASS_KEY_EXCHANGE = 0xA000, 4e2933c620 2015-04-21 kinaba: ALG_CLASS_ALL = 0xE000 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: enum : ALG_ID { 4e2933c620 2015-04-21 kinaba: ALG_TYPE_ANY = 0, 4e2933c620 2015-04-21 kinaba: ALG_TYPE_DSS = 0x0200, 4e2933c620 2015-04-21 kinaba: ALG_TYPE_RSA = 0x0400, 4e2933c620 2015-04-21 kinaba: ALG_TYPE_BLOCK = 0x0600, 4e2933c620 2015-04-21 kinaba: ALG_TYPE_STREAM = 0x0800, 4e2933c620 2015-04-21 kinaba: ALG_TYPE_DH = 0x0A00, 4e2933c620 2015-04-21 kinaba: ALG_TYPE_SECURECHANNEL = 0x0C00 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: enum : ALG_ID { 4e2933c620 2015-04-21 kinaba: ALG_SID_ANY = 0, 4e2933c620 2015-04-21 kinaba: ALG_SID_RSA_ANY = 0, 4e2933c620 2015-04-21 kinaba: ALG_SID_RSA_PKCS, 4e2933c620 2015-04-21 kinaba: ALG_SID_RSA_MSATWORK, 4e2933c620 2015-04-21 kinaba: ALG_SID_RSA_ENTRUST, 4e2933c620 2015-04-21 kinaba: ALG_SID_RSA_PGP, // = 4 4e2933c620 2015-04-21 kinaba: ALG_SID_DSS_ANY = 0, 4e2933c620 2015-04-21 kinaba: ALG_SID_DSS_PKCS, 4e2933c620 2015-04-21 kinaba: ALG_SID_DSS_DMS, // = 2 4e2933c620 2015-04-21 kinaba: ALG_SID_DES = 1, 4e2933c620 2015-04-21 kinaba: ALG_SID_3DES = 3, 4e2933c620 2015-04-21 kinaba: ALG_SID_DESX, 4e2933c620 2015-04-21 kinaba: ALG_SID_IDEA, 4e2933c620 2015-04-21 kinaba: ALG_SID_CAST, 4e2933c620 2015-04-21 kinaba: ALG_SID_SAFERSK64, 4e2933c620 2015-04-21 kinaba: ALG_SID_SAFERSK128, 4e2933c620 2015-04-21 kinaba: ALG_SID_3DES_112, 4e2933c620 2015-04-21 kinaba: ALG_SID_SKIPJACK, 4e2933c620 2015-04-21 kinaba: ALG_SID_TEK, 4e2933c620 2015-04-21 kinaba: ALG_SID_CYLINK_MEK, 4e2933c620 2015-04-21 kinaba: ALG_SID_RC5, // = 13 4e2933c620 2015-04-21 kinaba: ALG_SID_RC2 = 2, 4e2933c620 2015-04-21 kinaba: ALG_SID_RC4 = 1, 4e2933c620 2015-04-21 kinaba: ALG_SID_SEAL = 2, 4e2933c620 2015-04-21 kinaba: ALG_SID_MD2 = 1, 4e2933c620 2015-04-21 kinaba: ALG_SID_MD4, 4e2933c620 2015-04-21 kinaba: ALG_SID_MD5, 4e2933c620 2015-04-21 kinaba: ALG_SID_SHA, 4e2933c620 2015-04-21 kinaba: ALG_SID_MAC, 4e2933c620 2015-04-21 kinaba: ALG_SID_RIPEMD, 4e2933c620 2015-04-21 kinaba: ALG_SID_RIPEMD160, 4e2933c620 2015-04-21 kinaba: ALG_SID_SSL3SHAMD5, 4e2933c620 2015-04-21 kinaba: ALG_SID_HMAC, 4e2933c620 2015-04-21 kinaba: ALG_SID_TLS1PRF, // = 10 4e2933c620 2015-04-21 kinaba: ALG_SID_AES_128 = 14, 4e2933c620 2015-04-21 kinaba: ALG_SID_AES_192, 4e2933c620 2015-04-21 kinaba: ALG_SID_AES_256, 4e2933c620 2015-04-21 kinaba: ALG_SID_AES, // = 17 4e2933c620 2015-04-21 kinaba: ALG_SID_EXAMPLE = 80 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: enum : ALG_ID { 4e2933c620 2015-04-21 kinaba: CALG_MD2 = ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_MD2, 4e2933c620 2015-04-21 kinaba: CALG_MD4 = ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_MD4, 4e2933c620 2015-04-21 kinaba: CALG_MD5 = ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_MD5, 4e2933c620 2015-04-21 kinaba: CALG_SHA = ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_SHA, 4e2933c620 2015-04-21 kinaba: CALG_SHA1 = CALG_SHA, 4e2933c620 2015-04-21 kinaba: CALG_MAC = ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_MAC, 4e2933c620 2015-04-21 kinaba: CALG_3DES = ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_BLOCK | 3, 4e2933c620 2015-04-21 kinaba: CALG_CYLINK_MEK = ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_BLOCK | 12, 4e2933c620 2015-04-21 kinaba: CALG_SKIPJACK = ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_BLOCK | 10, 4e2933c620 2015-04-21 kinaba: CALG_KEA_KEYX = ALG_CLASS_KEY_EXCHANGE | ALG_TYPE_STREAM | ALG_TYPE_DSS | 4, 4e2933c620 2015-04-21 kinaba: CALG_RSA_SIGN = ALG_CLASS_SIGNATURE | ALG_TYPE_RSA | ALG_SID_RSA_ANY, 4e2933c620 2015-04-21 kinaba: CALG_DSS_SIGN = ALG_CLASS_SIGNATURE | ALG_TYPE_DSS | ALG_SID_DSS_ANY, 4e2933c620 2015-04-21 kinaba: CALG_RSA_KEYX = ALG_CLASS_KEY_EXCHANGE | ALG_TYPE_RSA | ALG_SID_RSA_ANY, 4e2933c620 2015-04-21 kinaba: CALG_DES = ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_BLOCK | ALG_SID_DES, 4e2933c620 2015-04-21 kinaba: CALG_RC2 = ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_BLOCK | ALG_SID_RC2, 4e2933c620 2015-04-21 kinaba: CALG_RC4 = ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_STREAM | ALG_SID_RC4, 4e2933c620 2015-04-21 kinaba: CALG_SEAL = ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_STREAM | ALG_SID_SEAL, 4e2933c620 2015-04-21 kinaba: CALG_DH_EPHEM = ALG_CLASS_KEY_EXCHANGE | ALG_TYPE_STREAM | ALG_TYPE_DSS 4e2933c620 2015-04-21 kinaba: | ALG_SID_DSS_DMS, 4e2933c620 2015-04-21 kinaba: CALG_DESX = ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_BLOCK | ALG_SID_DESX, 4e2933c620 2015-04-21 kinaba: // is undefined ALG_CLASS_DHASH in MinGW - presuming typo 4e2933c620 2015-04-21 kinaba: CALG_TLS1PRF = ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_TLS1PRF, 4e2933c620 2015-04-21 kinaba: CALG_AES_128 = ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_BLOCK | ALG_SID_AES_128, 4e2933c620 2015-04-21 kinaba: CALG_AES_192 = ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_BLOCK | ALG_SID_AES_192, 4e2933c620 2015-04-21 kinaba: CALG_AES_256 = ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_BLOCK | ALG_SID_AES_256, 4e2933c620 2015-04-21 kinaba: CALG_AES = ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_BLOCK | ALG_SID_AES, 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 9b639cf2d6 2015-05-05 kinaba: enum { 9b639cf2d6 2015-05-05 kinaba: CRYPT_VERIFYCONTEXT = 0xF0000000, 9b639cf2d6 2015-05-05 kinaba: } 9b639cf2d6 2015-05-05 kinaba: 9b639cf2d6 2015-05-05 kinaba: enum { 9b639cf2d6 2015-05-05 kinaba: CRYPT_NEWKEYSET = 8, 9b639cf2d6 2015-05-05 kinaba: CRYPT_DELETEKEYSET = 16, 9b639cf2d6 2015-05-05 kinaba: CRYPT_MACHINE_KEYSET = 32, 9b639cf2d6 2015-05-05 kinaba: CRYPT_SILENT = 64, 9b639cf2d6 2015-05-05 kinaba: } 9b639cf2d6 2015-05-05 kinaba: 9b639cf2d6 2015-05-05 kinaba: enum { 9b639cf2d6 2015-05-05 kinaba: CRYPT_EXPORTABLE = 1, 9b639cf2d6 2015-05-05 kinaba: CRYPT_USER_PROTECTED = 2, 9b639cf2d6 2015-05-05 kinaba: CRYPT_CREATE_SALT = 4, 9b639cf2d6 2015-05-05 kinaba: CRYPT_UPDATE_KEY = 8, 9b639cf2d6 2015-05-05 kinaba: } 9b639cf2d6 2015-05-05 kinaba: 9b639cf2d6 2015-05-05 kinaba: enum { 9b639cf2d6 2015-05-05 kinaba: SIMPLEBLOB = 1, 9b639cf2d6 2015-05-05 kinaba: PUBLICKEYBLOB = 6, 9b639cf2d6 2015-05-05 kinaba: PRIVATEKEYBLOB = 7, 9b639cf2d6 2015-05-05 kinaba: PLAINTEXTKEYBLOB = 8, 9b639cf2d6 2015-05-05 kinaba: OPAQUEKEYBLOB = 9, 9b639cf2d6 2015-05-05 kinaba: PUBLICKEYBLOBEX = 10, 9b639cf2d6 2015-05-05 kinaba: SYMMETRICWRAPKEYBLOB = 11, 9b639cf2d6 2015-05-05 kinaba: } 9b639cf2d6 2015-05-05 kinaba: 9b639cf2d6 2015-05-05 kinaba: enum { 9b639cf2d6 2015-05-05 kinaba: AT_KEYEXCHANGE = 1, 9b639cf2d6 2015-05-05 kinaba: AT_SIGNATURE = 2, 9b639cf2d6 2015-05-05 kinaba: } 9b639cf2d6 2015-05-05 kinaba: 9b639cf2d6 2015-05-05 kinaba: enum { 9b639cf2d6 2015-05-05 kinaba: CRYPT_USERDATA = 1, 9b639cf2d6 2015-05-05 kinaba: } 9b639cf2d6 2015-05-05 kinaba: 9b639cf2d6 2015-05-05 kinaba: enum { 9b639cf2d6 2015-05-05 kinaba: PKCS5_PADDING = 1, 9b639cf2d6 2015-05-05 kinaba: } 9b639cf2d6 2015-05-05 kinaba: 9b639cf2d6 2015-05-05 kinaba: enum { 9b639cf2d6 2015-05-05 kinaba: CRYPT_MODE_CBC = 1, 9b639cf2d6 2015-05-05 kinaba: CRYPT_MODE_ECB = 2, 9b639cf2d6 2015-05-05 kinaba: CRYPT_MODE_OFB = 3, 9b639cf2d6 2015-05-05 kinaba: CRYPT_MODE_CFB = 4, 9b639cf2d6 2015-05-05 kinaba: CRYPT_MODE_CTS = 5, 9b639cf2d6 2015-05-05 kinaba: CRYPT_MODE_CBCI = 6, 9b639cf2d6 2015-05-05 kinaba: CRYPT_MODE_CFBP = 7, 9b639cf2d6 2015-05-05 kinaba: CRYPT_MODE_OFBP = 8, 9b639cf2d6 2015-05-05 kinaba: CRYPT_MODE_CBCOFM = 9, 9b639cf2d6 2015-05-05 kinaba: CRYPT_MODE_CBCOFMI = 10, 9b639cf2d6 2015-05-05 kinaba: } 9b639cf2d6 2015-05-05 kinaba: 9b639cf2d6 2015-05-05 kinaba: enum { 9b639cf2d6 2015-05-05 kinaba: CRYPT_ENCRYPT = 1, 9b639cf2d6 2015-05-05 kinaba: CRYPT_DECRYPT = 2, 9b639cf2d6 2015-05-05 kinaba: CRYPT_EXPORT = 4, 9b639cf2d6 2015-05-05 kinaba: CRYPT_READ = 8, 9b639cf2d6 2015-05-05 kinaba: CRYPT_WRITE = 16, 9b639cf2d6 2015-05-05 kinaba: CRYPT_MAC = 32, 9b639cf2d6 2015-05-05 kinaba: } 9b639cf2d6 2015-05-05 kinaba: 9b639cf2d6 2015-05-05 kinaba: enum { 9b639cf2d6 2015-05-05 kinaba: HP_ALGID = 1, 9b639cf2d6 2015-05-05 kinaba: HP_HASHVAL = 2, 9b639cf2d6 2015-05-05 kinaba: HP_HASHSIZE = 4, 9b639cf2d6 2015-05-05 kinaba: HP_HMAC_INFO = 5, 9b639cf2d6 2015-05-05 kinaba: } 9b639cf2d6 2015-05-05 kinaba: 9b639cf2d6 2015-05-05 kinaba: enum { 9b639cf2d6 2015-05-05 kinaba: CRYPT_FAILED = FALSE, 9b639cf2d6 2015-05-05 kinaba: CRYPT_SUCCEED = TRUE, 9b639cf2d6 2015-05-05 kinaba: } 9b639cf2d6 2015-05-05 kinaba: 9b639cf2d6 2015-05-05 kinaba: bool RCRYPT_SUCCEEDED(BOOL r) { return r==CRYPT_SUCCEED; } 9b639cf2d6 2015-05-05 kinaba: bool RCRYPT_FAILED(BOOL r) { return r==CRYPT_FAILED; } 9b639cf2d6 2015-05-05 kinaba: 9b639cf2d6 2015-05-05 kinaba: enum { 9b639cf2d6 2015-05-05 kinaba: PP_ENUMALGS = 1, 9b639cf2d6 2015-05-05 kinaba: PP_ENUMCONTAINERS = 2, 9b639cf2d6 2015-05-05 kinaba: PP_IMPTYPE = 3, 9b639cf2d6 2015-05-05 kinaba: PP_NAME = 4, 9b639cf2d6 2015-05-05 kinaba: PP_VERSION = 5, 9b639cf2d6 2015-05-05 kinaba: PP_CONTAINER = 6, 9b639cf2d6 2015-05-05 kinaba: PP_CHANGE_PASSWORD = 7, 9b639cf2d6 2015-05-05 kinaba: PP_KEYSET_SEC_DESCR = 8, 9b639cf2d6 2015-05-05 kinaba: PP_CERTCHAIN = 9, 9b639cf2d6 2015-05-05 kinaba: PP_KEY_TYPE_SUBTYPE = 10, 9b639cf2d6 2015-05-05 kinaba: PP_PROVTYPE = 16, 9b639cf2d6 2015-05-05 kinaba: PP_KEYSTORAGE = 17, 9b639cf2d6 2015-05-05 kinaba: PP_APPLI_CERT = 18, 9b639cf2d6 2015-05-05 kinaba: PP_SYM_KEYSIZE = 19, 9b639cf2d6 2015-05-05 kinaba: PP_SESSION_KEYSIZE = 20, 9b639cf2d6 2015-05-05 kinaba: PP_UI_PROMPT = 21, 9b639cf2d6 2015-05-05 kinaba: PP_ENUMALGS_EX = 22, 9b639cf2d6 2015-05-05 kinaba: PP_ENUMMANDROOTS = 25, 9b639cf2d6 2015-05-05 kinaba: PP_ENUMELECTROOTS = 26, 9b639cf2d6 2015-05-05 kinaba: PP_KEYSET_TYPE = 27, 9b639cf2d6 2015-05-05 kinaba: PP_ADMIN_PIN = 31, 9b639cf2d6 2015-05-05 kinaba: PP_KEYEXCHANGE_PIN = 32, 9b639cf2d6 2015-05-05 kinaba: PP_SIGNATURE_PIN = 33, 9b639cf2d6 2015-05-05 kinaba: PP_SIG_KEYSIZE_INC = 34, 9b639cf2d6 2015-05-05 kinaba: PP_KEYX_KEYSIZE_INC = 35, 9b639cf2d6 2015-05-05 kinaba: PP_UNIQUE_CONTAINER = 36, 9b639cf2d6 2015-05-05 kinaba: PP_SGC_INFO = 37, 9b639cf2d6 2015-05-05 kinaba: PP_USE_HARDWARE_RNG = 38, 9b639cf2d6 2015-05-05 kinaba: PP_KEYSPEC = 39, 9b639cf2d6 2015-05-05 kinaba: PP_ENUMEX_SIGNING_PROT = 40, 9b639cf2d6 2015-05-05 kinaba: } 9b639cf2d6 2015-05-05 kinaba: 9b639cf2d6 2015-05-05 kinaba: enum { 9b639cf2d6 2015-05-05 kinaba: CRYPT_FIRST = 1, 9b639cf2d6 2015-05-05 kinaba: CRYPT_NEXT = 2, 9b639cf2d6 2015-05-05 kinaba: } 9b639cf2d6 2015-05-05 kinaba: 9b639cf2d6 2015-05-05 kinaba: enum { 9b639cf2d6 2015-05-05 kinaba: CRYPT_IMPL_HARDWARE = 1, 9b639cf2d6 2015-05-05 kinaba: CRYPT_IMPL_SOFTWARE = 2, 9b639cf2d6 2015-05-05 kinaba: CRYPT_IMPL_MIXED = 3, 9b639cf2d6 2015-05-05 kinaba: CRYPT_IMPL_UNKNOWN = 4, 9b639cf2d6 2015-05-05 kinaba: } 9b639cf2d6 2015-05-05 kinaba: 9b639cf2d6 2015-05-05 kinaba: enum { 9b639cf2d6 2015-05-05 kinaba: PROV_RSA_FULL = 1, 9b639cf2d6 2015-05-05 kinaba: PROV_RSA_SIG = 2, 9b639cf2d6 2015-05-05 kinaba: PROV_DSS = 3, 9b639cf2d6 2015-05-05 kinaba: PROV_FORTEZZA = 4, 9b639cf2d6 2015-05-05 kinaba: PROV_MS_MAIL = 5, 9b639cf2d6 2015-05-05 kinaba: PROV_SSL = 6, 9b639cf2d6 2015-05-05 kinaba: PROV_STT_MER = 7, 9b639cf2d6 2015-05-05 kinaba: PROV_STT_ACQ = 8, 9b639cf2d6 2015-05-05 kinaba: PROV_STT_BRND = 9, 9b639cf2d6 2015-05-05 kinaba: PROV_STT_ROOT = 10, 9b639cf2d6 2015-05-05 kinaba: PROV_STT_ISS = 11, 9b639cf2d6 2015-05-05 kinaba: PROV_RSA_SCHANNEL = 12, 9b639cf2d6 2015-05-05 kinaba: PROV_DSS_DH = 13, 9b639cf2d6 2015-05-05 kinaba: PROV_EC_ECDSA_SIG = 14, 9b639cf2d6 2015-05-05 kinaba: PROV_EC_ECNRA_SIG = 15, 9b639cf2d6 2015-05-05 kinaba: PROV_EC_ECDSA_FULL = 16, 9b639cf2d6 2015-05-05 kinaba: PROV_EC_ECNRA_FULL = 17, 9b639cf2d6 2015-05-05 kinaba: PROV_DH_SCHANNEL = 18, 9b639cf2d6 2015-05-05 kinaba: PROV_SPYRUS_LYNKS = 20, 9b639cf2d6 2015-05-05 kinaba: PROV_RNG = 21, 9b639cf2d6 2015-05-05 kinaba: PROV_INTEL_SEC = 22, 9b639cf2d6 2015-05-05 kinaba: PROV_RSA_AES = 24, 9b639cf2d6 2015-05-05 kinaba: MAXUIDLEN = 64, 9b639cf2d6 2015-05-05 kinaba: } 9b639cf2d6 2015-05-05 kinaba: 9b639cf2d6 2015-05-05 kinaba: enum { 9b639cf2d6 2015-05-05 kinaba: CUR_BLOB_VERSION = 2, 9b639cf2d6 2015-05-05 kinaba: } 9b639cf2d6 2015-05-05 kinaba: 9b639cf2d6 2015-05-05 kinaba: enum { 9b639cf2d6 2015-05-05 kinaba: X509_ASN_ENCODING = 1, 9b639cf2d6 2015-05-05 kinaba: PKCS_7_ASN_ENCODING = 65536, 9b639cf2d6 2015-05-05 kinaba: } 9b639cf2d6 2015-05-05 kinaba: 9b639cf2d6 2015-05-05 kinaba: enum { 9b639cf2d6 2015-05-05 kinaba: CERT_V1 = 0, 9b639cf2d6 2015-05-05 kinaba: CERT_V2 = 1, 9b639cf2d6 2015-05-05 kinaba: CERT_V3 = 2, 9b639cf2d6 2015-05-05 kinaba: } 9b639cf2d6 2015-05-05 kinaba: 9b639cf2d6 2015-05-05 kinaba: enum { 9b639cf2d6 2015-05-05 kinaba: CERT_E_CHAINING = (-2146762486), 9b639cf2d6 2015-05-05 kinaba: CERT_E_CN_NO_MATCH = (-2146762481), 9b639cf2d6 2015-05-05 kinaba: CERT_E_EXPIRED = (-2146762495), 9b639cf2d6 2015-05-05 kinaba: CERT_E_PURPOSE = (-2146762490), 9b639cf2d6 2015-05-05 kinaba: CERT_E_REVOCATION_FAILURE = (-2146762482), 9b639cf2d6 2015-05-05 kinaba: CERT_E_REVOKED = (-2146762484), 9b639cf2d6 2015-05-05 kinaba: CERT_E_ROLE = (-2146762493), 9b639cf2d6 2015-05-05 kinaba: CERT_E_UNTRUSTEDROOT = (-2146762487), 9b639cf2d6 2015-05-05 kinaba: CERT_E_UNTRUSTEDTESTROOT = (-2146762483), 9b639cf2d6 2015-05-05 kinaba: CERT_E_VALIDITYPERIODNESTING = (-2146762494), 9b639cf2d6 2015-05-05 kinaba: CERT_E_WRONG_USAGE = (-2146762480), 9b639cf2d6 2015-05-05 kinaba: CERT_E_PATHLENCONST = (-2146762492), 9b639cf2d6 2015-05-05 kinaba: CERT_E_CRITICAL = (-2146762491), 9b639cf2d6 2015-05-05 kinaba: CERT_E_ISSUERCHAINING = (-2146762489), 9b639cf2d6 2015-05-05 kinaba: CERT_E_MALFORMED = (-2146762488), 9b639cf2d6 2015-05-05 kinaba: CRYPT_E_REVOCATION_OFFLINE = (-2146885613), 9b639cf2d6 2015-05-05 kinaba: CRYPT_E_REVOKED = (-2146885616), 9b639cf2d6 2015-05-05 kinaba: TRUST_E_BASIC_CONSTRAINTS = (-2146869223), 9b639cf2d6 2015-05-05 kinaba: TRUST_E_CERT_SIGNATURE = (-2146869244), 9b639cf2d6 2015-05-05 kinaba: TRUST_E_FAIL = (-2146762485), 9b639cf2d6 2015-05-05 kinaba: } 9b639cf2d6 2015-05-05 kinaba: 9b639cf2d6 2015-05-05 kinaba: enum { 9b639cf2d6 2015-05-05 kinaba: CERT_TRUST_NO_ERROR = 0, 9b639cf2d6 2015-05-05 kinaba: CERT_TRUST_IS_NOT_TIME_VALID = 1, 9b639cf2d6 2015-05-05 kinaba: CERT_TRUST_IS_NOT_TIME_NESTED = 2, 9b639cf2d6 2015-05-05 kinaba: CERT_TRUST_IS_REVOKED = 4, 9b639cf2d6 2015-05-05 kinaba: CERT_TRUST_IS_NOT_SIGNATURE_VALID = 8, 9b639cf2d6 2015-05-05 kinaba: CERT_TRUST_IS_NOT_VALID_FOR_USAGE = 16, 9b639cf2d6 2015-05-05 kinaba: CERT_TRUST_IS_UNTRUSTED_ROOT = 32, 9b639cf2d6 2015-05-05 kinaba: CERT_TRUST_REVOCATION_STATUS_UNKNOWN = 64, 9b639cf2d6 2015-05-05 kinaba: CERT_TRUST_IS_CYCLIC = 128, 9b639cf2d6 2015-05-05 kinaba: CERT_TRUST_IS_PARTIAL_CHAIN = 65536, 9b639cf2d6 2015-05-05 kinaba: CERT_TRUST_CTL_IS_NOT_TIME_VALID = 131072, 9b639cf2d6 2015-05-05 kinaba: CERT_TRUST_CTL_IS_NOT_SIGNATURE_VALID = 262144, 9b639cf2d6 2015-05-05 kinaba: CERT_TRUST_CTL_IS_NOT_VALID_FOR_USAGE = 524288, 9b639cf2d6 2015-05-05 kinaba: } 9b639cf2d6 2015-05-05 kinaba: 9b639cf2d6 2015-05-05 kinaba: enum { 9b639cf2d6 2015-05-05 kinaba: CERT_TRUST_HAS_EXACT_MATCH_ISSUER = 1, 9b639cf2d6 2015-05-05 kinaba: CERT_TRUST_HAS_KEY_MATCH_ISSUER = 2, 9b639cf2d6 2015-05-05 kinaba: CERT_TRUST_HAS_NAME_MATCH_ISSUER = 4, 9b639cf2d6 2015-05-05 kinaba: CERT_TRUST_IS_SELF_SIGNED = 8, 9b639cf2d6 2015-05-05 kinaba: CERT_TRUST_IS_COMPLEX_CHAIN = 65536, 9b639cf2d6 2015-05-05 kinaba: } 9b639cf2d6 2015-05-05 kinaba: 9b639cf2d6 2015-05-05 kinaba: enum { 9b639cf2d6 2015-05-05 kinaba: CERT_CHAIN_POLICY_BASE = cast(LPCSTR) 1, 9b639cf2d6 2015-05-05 kinaba: CERT_CHAIN_POLICY_AUTHENTICODE = cast(LPCSTR) 2, 9b639cf2d6 2015-05-05 kinaba: CERT_CHAIN_POLICY_AUTHENTICODE_TS = cast(LPCSTR) 3, 9b639cf2d6 2015-05-05 kinaba: CERT_CHAIN_POLICY_SSL = cast(LPCSTR) 4, 9b639cf2d6 2015-05-05 kinaba: CERT_CHAIN_POLICY_BASIC_CONSTRAINTS = cast(LPCSTR) 5, 9b639cf2d6 2015-05-05 kinaba: CERT_CHAIN_POLICY_NT_AUTH = cast(LPCSTR) 6, 9b639cf2d6 2015-05-05 kinaba: } 9b639cf2d6 2015-05-05 kinaba: 9b639cf2d6 2015-05-05 kinaba: enum { 9b639cf2d6 2015-05-05 kinaba: USAGE_MATCH_TYPE_AND = 0, 9b639cf2d6 2015-05-05 kinaba: USAGE_MATCH_TYPE_OR = 1, 9b639cf2d6 2015-05-05 kinaba: } 9b639cf2d6 2015-05-05 kinaba: 9b639cf2d6 2015-05-05 kinaba: enum { 9b639cf2d6 2015-05-05 kinaba: CERT_SIMPLE_NAME_STR = 1, 9b639cf2d6 2015-05-05 kinaba: CERT_OID_NAME_STR = 2, 9b639cf2d6 2015-05-05 kinaba: CERT_X500_NAME_STR = 3, 9b639cf2d6 2015-05-05 kinaba: } 9b639cf2d6 2015-05-05 kinaba: enum { 9b639cf2d6 2015-05-05 kinaba: CERT_NAME_STR_SEMICOLON_FLAG = 1073741824, 9b639cf2d6 2015-05-05 kinaba: CERT_NAME_STR_CRLF_FLAG = 134217728, 9b639cf2d6 2015-05-05 kinaba: CERT_NAME_STR_NO_PLUS_FLAG = 536870912, 9b639cf2d6 2015-05-05 kinaba: CERT_NAME_STR_NO_QUOTING_FLAG = 268435456, 9b639cf2d6 2015-05-05 kinaba: CERT_NAME_STR_REVERSE_FLAG = 33554432, 9b639cf2d6 2015-05-05 kinaba: CERT_NAME_STR_ENABLE_T61_UNICODE_FLAG = 131072, 9b639cf2d6 2015-05-05 kinaba: } 9b639cf2d6 2015-05-05 kinaba: 9b639cf2d6 2015-05-05 kinaba: enum { 9b639cf2d6 2015-05-05 kinaba: CERT_FIND_ANY = 0, 9b639cf2d6 2015-05-05 kinaba: CERT_FIND_CERT_ID = 1048576, 9b639cf2d6 2015-05-05 kinaba: CERT_FIND_CTL_USAGE = 655360, 9b639cf2d6 2015-05-05 kinaba: CERT_FIND_ENHKEY_USAGE = 655360, 9b639cf2d6 2015-05-05 kinaba: CERT_FIND_EXISTING = 851968, 9b639cf2d6 2015-05-05 kinaba: CERT_FIND_HASH = 65536, 9b639cf2d6 2015-05-05 kinaba: CERT_FIND_ISSUER_ATTR = 196612, 9b639cf2d6 2015-05-05 kinaba: CERT_FIND_ISSUER_NAME = 131076, 9b639cf2d6 2015-05-05 kinaba: CERT_FIND_ISSUER_OF = 786432, 9b639cf2d6 2015-05-05 kinaba: CERT_FIND_KEY_IDENTIFIER = 983040, 9b639cf2d6 2015-05-05 kinaba: CERT_FIND_KEY_SPEC = 589824, 9b639cf2d6 2015-05-05 kinaba: CERT_FIND_MD5_HASH = 262144, 9b639cf2d6 2015-05-05 kinaba: CERT_FIND_PROPERTY = 327680, 9b639cf2d6 2015-05-05 kinaba: CERT_FIND_PUBLIC_KEY = 393216, 9b639cf2d6 2015-05-05 kinaba: CERT_FIND_SHA1_HASH = 65536, 9b639cf2d6 2015-05-05 kinaba: CERT_FIND_SIGNATURE_HASH = 917504, 9b639cf2d6 2015-05-05 kinaba: CERT_FIND_SUBJECT_ATTR = 196615, 9b639cf2d6 2015-05-05 kinaba: CERT_FIND_SUBJECT_CERT = 720896, 9b639cf2d6 2015-05-05 kinaba: CERT_FIND_SUBJECT_NAME = 131079, 9b639cf2d6 2015-05-05 kinaba: CERT_FIND_SUBJECT_STR_A = 458759, 9b639cf2d6 2015-05-05 kinaba: CERT_FIND_SUBJECT_STR_W = 524295, 9b639cf2d6 2015-05-05 kinaba: CERT_FIND_ISSUER_STR_A = 458756, 9b639cf2d6 2015-05-05 kinaba: CERT_FIND_ISSUER_STR_W = 524292, 9b639cf2d6 2015-05-05 kinaba: } 9b639cf2d6 2015-05-05 kinaba: 9b639cf2d6 2015-05-05 kinaba: enum { 9b639cf2d6 2015-05-05 kinaba: CERT_FIND_OR_ENHKEY_USAGE_FLAG = 16, 9b639cf2d6 2015-05-05 kinaba: CERT_FIND_OPTIONAL_ENHKEY_USAGE_FLAG = 1, 9b639cf2d6 2015-05-05 kinaba: CERT_FIND_NO_ENHKEY_USAGE_FLAG = 8, 9b639cf2d6 2015-05-05 kinaba: CERT_FIND_VALID_ENHKEY_USAGE_FLAG = 32, 9b639cf2d6 2015-05-05 kinaba: CERT_FIND_EXT_ONLY_ENHKEY_USAGE_FLAG = 2, 9b639cf2d6 2015-05-05 kinaba: } 9b639cf2d6 2015-05-05 kinaba: 9b639cf2d6 2015-05-05 kinaba: enum { 9b639cf2d6 2015-05-05 kinaba: CERT_CASE_INSENSITIVE_IS_RDN_ATTRS_FLAG = 2, 9b639cf2d6 2015-05-05 kinaba: CERT_UNICODE_IS_RDN_ATTRS_FLAG = 1, 9b639cf2d6 2015-05-05 kinaba: CERT_CHAIN_FIND_BY_ISSUER = 1, 9b639cf2d6 2015-05-05 kinaba: } 9b639cf2d6 2015-05-05 kinaba: 9b639cf2d6 2015-05-05 kinaba: enum { 9b639cf2d6 2015-05-05 kinaba: CERT_CHAIN_FIND_BY_ISSUER_COMPARE_KEY_FLAG = 1, 9b639cf2d6 2015-05-05 kinaba: CERT_CHAIN_FIND_BY_ISSUER_COMPLEX_CHAIN_FLAG = 2, 9b639cf2d6 2015-05-05 kinaba: CERT_CHAIN_FIND_BY_ISSUER_CACHE_ONLY_URL_FLAG = 4, 9b639cf2d6 2015-05-05 kinaba: CERT_CHAIN_FIND_BY_ISSUER_LOCAL_MACHINE_FLAG = 8, 9b639cf2d6 2015-05-05 kinaba: CERT_CHAIN_FIND_BY_ISSUER_NO_KEY_FLAG = 16384, 9b639cf2d6 2015-05-05 kinaba: CERT_CHAIN_FIND_BY_ISSUER_CACHE_ONLY_FLAG = 32768, 9b639cf2d6 2015-05-05 kinaba: } 9b639cf2d6 2015-05-05 kinaba: 9b639cf2d6 2015-05-05 kinaba: enum { 9b639cf2d6 2015-05-05 kinaba: CERT_STORE_PROV_SYSTEM = 10, 9b639cf2d6 2015-05-05 kinaba: CERT_SYSTEM_STORE_LOCAL_MACHINE = 131072, 9b639cf2d6 2015-05-05 kinaba: } 9b639cf2d6 2015-05-05 kinaba: 9b639cf2d6 2015-05-05 kinaba: enum { 9b639cf2d6 2015-05-05 kinaba: szOID_PKIX_KP_SERVER_AUTH = "4235600", 9b639cf2d6 2015-05-05 kinaba: szOID_SERVER_GATED_CRYPTO = "4235658", 9b639cf2d6 2015-05-05 kinaba: szOID_SGC_NETSCAPE = "2.16.840.1.113730.4.1", 9b639cf2d6 2015-05-05 kinaba: szOID_PKIX_KP_CLIENT_AUTH = "1.3.6.1.5.5.7.3.2", 9b639cf2d6 2015-05-05 kinaba: } 9b639cf2d6 2015-05-05 kinaba: 9b639cf2d6 2015-05-05 kinaba: enum { 9b639cf2d6 2015-05-05 kinaba: CRYPT_NOHASHOID = 0x00000001, 9b639cf2d6 2015-05-05 kinaba: CRYPT_NO_SALT = 0x10, 9b639cf2d6 2015-05-05 kinaba: CRYPT_PREGEN = 0x40, 9b639cf2d6 2015-05-05 kinaba: } 9b639cf2d6 2015-05-05 kinaba: 9b639cf2d6 2015-05-05 kinaba: enum { 9b639cf2d6 2015-05-05 kinaba: CRYPT_RECIPIENT = 0x10, 9b639cf2d6 2015-05-05 kinaba: CRYPT_INITIATOR = 0x40, 9b639cf2d6 2015-05-05 kinaba: CRYPT_ONLINE = 0x80, 9b639cf2d6 2015-05-05 kinaba: CRYPT_SF = 0x100, 9b639cf2d6 2015-05-05 kinaba: CRYPT_CREATE_IV = 0x200, 9b639cf2d6 2015-05-05 kinaba: CRYPT_KEK = 0x400, 9b639cf2d6 2015-05-05 kinaba: CRYPT_DATA_KEY = 0x800, 9b639cf2d6 2015-05-05 kinaba: CRYPT_VOLATILE = 0x1000, 9b639cf2d6 2015-05-05 kinaba: CRYPT_SGCKEY = 0x2000, 9b639cf2d6 2015-05-05 kinaba: } 9b639cf2d6 2015-05-05 kinaba: 9b639cf2d6 2015-05-05 kinaba: enum { 9b639cf2d6 2015-05-05 kinaba: KP_IV = 0x00000001, 9b639cf2d6 2015-05-05 kinaba: KP_SALT = 0x00000002, 9b639cf2d6 2015-05-05 kinaba: KP_PADDING = 0x00000003, 9b639cf2d6 2015-05-05 kinaba: KP_MODE = 0x00000004, 9b639cf2d6 2015-05-05 kinaba: KP_MODE_BITS = 0x00000005, 9b639cf2d6 2015-05-05 kinaba: KP_PERMISSIONS = 0x00000006, 9b639cf2d6 2015-05-05 kinaba: KP_ALGID = 0x00000007, 9b639cf2d6 2015-05-05 kinaba: KP_BLOCKLEN = 0x00000008, 9b639cf2d6 2015-05-05 kinaba: KP_KEYLEN = 0x00000009, 9b639cf2d6 2015-05-05 kinaba: KP_SALT_EX = 0x0000000a, 9b639cf2d6 2015-05-05 kinaba: KP_P = 0x0000000b, 9b639cf2d6 2015-05-05 kinaba: KP_G = 0x0000000c, 9b639cf2d6 2015-05-05 kinaba: KP_Q = 0x0000000d, 9b639cf2d6 2015-05-05 kinaba: KP_X = 0x0000000e, 9b639cf2d6 2015-05-05 kinaba: KP_Y = 0x0000000f, 9b639cf2d6 2015-05-05 kinaba: KP_RA = 0x00000010, 9b639cf2d6 2015-05-05 kinaba: KP_RB = 0x00000011, 9b639cf2d6 2015-05-05 kinaba: KP_INFO = 0x00000012, 9b639cf2d6 2015-05-05 kinaba: KP_EFFECTIVE_KEYLEN = 0x00000013, 9b639cf2d6 2015-05-05 kinaba: KP_SCHANNEL_ALG = 0x00000014, 9b639cf2d6 2015-05-05 kinaba: KP_PUB_PARAMS = 0x00000027, 9b639cf2d6 2015-05-05 kinaba: } 9b639cf2d6 2015-05-05 kinaba: 9b639cf2d6 2015-05-05 kinaba: enum { 9b639cf2d6 2015-05-05 kinaba: CRYPT_FLAG_PCT1 = 0x0001, 9b639cf2d6 2015-05-05 kinaba: CRYPT_FLAG_SSL2 = 0x0002, 9b639cf2d6 2015-05-05 kinaba: CRYPT_FLAG_SSL3 = 0x0004, 9b639cf2d6 2015-05-05 kinaba: CRYPT_FLAG_TLS1 = 0x0008, 9b639cf2d6 2015-05-05 kinaba: CRYPT_FLAG_IPSEC = 0x0010, 9b639cf2d6 2015-05-05 kinaba: CRYPT_FLAG_SIGNING = 0x0020, 9b639cf2d6 2015-05-05 kinaba: } 9b639cf2d6 2015-05-05 kinaba: 9b639cf2d6 2015-05-05 kinaba: enum { 9b639cf2d6 2015-05-05 kinaba: SCHANNEL_MAC_KEY = 0x00000000, 9b639cf2d6 2015-05-05 kinaba: SCHANNEL_ENC_KEY = 0x00000001, 9b639cf2d6 2015-05-05 kinaba: } 9b639cf2d6 2015-05-05 kinaba: 9b639cf2d6 2015-05-05 kinaba: enum { 9b639cf2d6 2015-05-05 kinaba: INTERNATIONAL_USAGE = 0x00000001, 9b639cf2d6 2015-05-05 kinaba: } 9b639cf2d6 2015-05-05 kinaba: 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: alias UINT ALG_ID; 4e2933c620 2015-04-21 kinaba: alias ULONG HCRYPTPROV, HCRYPTKEY, HCRYPTHASH; 4e2933c620 2015-04-21 kinaba: alias PVOID HCERTSTORE, HCRYPTMSG, HCERTCHAINENGINE; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: struct VTableProvStruc { 4e2933c620 2015-04-21 kinaba: FARPROC FuncVerifyImage; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: alias VTableProvStruc* PVTableProvStruc; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: struct _CRYPTOAPI_BLOB { 4e2933c620 2015-04-21 kinaba: DWORD cbData; 4e2933c620 2015-04-21 kinaba: BYTE* pbData; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: alias _CRYPTOAPI_BLOB CRYPT_INTEGER_BLOB, CRYPT_UINT_BLOB, 4e2933c620 2015-04-21 kinaba: CRYPT_OBJID_BLOB, CERT_NAME_BLOB, CERT_RDN_VALUE_BLOB, CERT_BLOB, 4e2933c620 2015-04-21 kinaba: CRL_BLOB, DATA_BLOB, CRYPT_DATA_BLOB, CRYPT_HASH_BLOB, 4e2933c620 2015-04-21 kinaba: CRYPT_DIGEST_BLOB, CRYPT_DER_BLOB, CRYPT_ATTR_BLOB; 4e2933c620 2015-04-21 kinaba: alias _CRYPTOAPI_BLOB* PCRYPT_INTEGER_BLOB, PCRYPT_UINT_BLOB, 4e2933c620 2015-04-21 kinaba: PCRYPT_OBJID_BLOB, PCERT_NAME_BLOB, PCERT_RDN_VALUE_BLOB, PCERT_BLOB, 4e2933c620 2015-04-21 kinaba: PCRL_BLOB, PDATA_BLOB, PCRYPT_DATA_BLOB, PCRYPT_HASH_BLOB, 4e2933c620 2015-04-21 kinaba: PCRYPT_DIGEST_BLOB, PCRYPT_DER_BLOB, PCRYPT_ATTR_BLOB; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: // not described in SDK; has the same layout as HTTPSPolicyCallbackData 4e2933c620 2015-04-21 kinaba: struct SSL_EXTRA_CERT_CHAIN_POLICY_PARA { 4e2933c620 2015-04-21 kinaba: DWORD cbStruct; 4e2933c620 2015-04-21 kinaba: DWORD dwAuthType; 4e2933c620 2015-04-21 kinaba: DWORD fdwChecks; 4e2933c620 2015-04-21 kinaba: LPWSTR pwszServerName; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: alias SSL_EXTRA_CERT_CHAIN_POLICY_PARA HTTPSPolicyCallbackData; 4e2933c620 2015-04-21 kinaba: alias SSL_EXTRA_CERT_CHAIN_POLICY_PARA* PSSL_EXTRA_CERT_CHAIN_POLICY_PARA, 4e2933c620 2015-04-21 kinaba: PHTTPSPolicyCallbackData; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: /* #if (_WIN32_WINNT>=0x500) */ 4e2933c620 2015-04-21 kinaba: struct CERT_CHAIN_POLICY_PARA { 4e2933c620 2015-04-21 kinaba: DWORD cbSize = CERT_CHAIN_POLICY_PARA.sizeof; 4e2933c620 2015-04-21 kinaba: DWORD dwFlags; 4e2933c620 2015-04-21 kinaba: void* pvExtraPolicyPara; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: alias CERT_CHAIN_POLICY_PARA* PCERT_CHAIN_POLICY_PARA; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: struct CERT_CHAIN_POLICY_STATUS { 4e2933c620 2015-04-21 kinaba: DWORD cbSize = CERT_CHAIN_POLICY_STATUS.sizeof; 4e2933c620 2015-04-21 kinaba: DWORD dwError; 4e2933c620 2015-04-21 kinaba: LONG lChainIndex; 4e2933c620 2015-04-21 kinaba: LONG lElementIndex; 4e2933c620 2015-04-21 kinaba: void* pvExtraPolicyStatus; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: alias CERT_CHAIN_POLICY_STATUS* PCERT_CHAIN_POLICY_STATUS; 4e2933c620 2015-04-21 kinaba: /* #endif */ 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: struct CRYPT_ALGORITHM_IDENTIFIER { 4e2933c620 2015-04-21 kinaba: LPSTR pszObjId; 4e2933c620 2015-04-21 kinaba: CRYPT_OBJID_BLOB Parameters; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: alias CRYPT_ALGORITHM_IDENTIFIER* PCRYPT_ALGORITHM_IDENTIFIER; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: struct CRYPT_BIT_BLOB { 4e2933c620 2015-04-21 kinaba: DWORD cbData; 4e2933c620 2015-04-21 kinaba: BYTE* pbData; 4e2933c620 2015-04-21 kinaba: DWORD cUnusedBits; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: alias CRYPT_BIT_BLOB* PCRYPT_BIT_BLOB; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: struct CERT_PUBLIC_KEY_INFO { 4e2933c620 2015-04-21 kinaba: CRYPT_ALGORITHM_IDENTIFIER Algorithm; 4e2933c620 2015-04-21 kinaba: CRYPT_BIT_BLOB PublicKey; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: alias CERT_PUBLIC_KEY_INFO* PCERT_PUBLIC_KEY_INFO; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: struct CERT_EXTENSION { 4e2933c620 2015-04-21 kinaba: LPSTR pszObjId; 4e2933c620 2015-04-21 kinaba: BOOL fCritical; 4e2933c620 2015-04-21 kinaba: CRYPT_OBJID_BLOB Value; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: alias CERT_EXTENSION* PCERT_EXTENSION; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: struct CERT_INFO { 4e2933c620 2015-04-21 kinaba: DWORD dwVersion; 4e2933c620 2015-04-21 kinaba: CRYPT_INTEGER_BLOB SerialNumber; 4e2933c620 2015-04-21 kinaba: CRYPT_ALGORITHM_IDENTIFIER SignatureAlgorithm; 4e2933c620 2015-04-21 kinaba: CERT_NAME_BLOB Issuer; 4e2933c620 2015-04-21 kinaba: FILETIME NotBefore; 4e2933c620 2015-04-21 kinaba: FILETIME NotAfter; 4e2933c620 2015-04-21 kinaba: CERT_NAME_BLOB Subject; 4e2933c620 2015-04-21 kinaba: CERT_PUBLIC_KEY_INFO SubjectPublicKeyInfo; 4e2933c620 2015-04-21 kinaba: CRYPT_BIT_BLOB IssuerUniqueId; 4e2933c620 2015-04-21 kinaba: CRYPT_BIT_BLOB SubjectUniqueId; 4e2933c620 2015-04-21 kinaba: DWORD cExtension; 4e2933c620 2015-04-21 kinaba: PCERT_EXTENSION rgExtension; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: alias CERT_INFO* PCERT_INFO; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: struct CERT_CONTEXT { 4e2933c620 2015-04-21 kinaba: DWORD dwCertEncodingType; 4e2933c620 2015-04-21 kinaba: BYTE* pbCertEncoded; 4e2933c620 2015-04-21 kinaba: DWORD cbCertEncoded; 4e2933c620 2015-04-21 kinaba: PCERT_INFO pCertInfo; 4e2933c620 2015-04-21 kinaba: HCERTSTORE hCertStore; 4e2933c620 2015-04-21 kinaba: } 9b639cf2d6 2015-05-05 kinaba: alias CERT_CONTEXT* PCERT_CONTEXT; 9b639cf2d6 2015-05-05 kinaba: alias const(CERT_CONTEXT)* PCCERT_CONTEXT; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: struct CTL_USAGE { 4e2933c620 2015-04-21 kinaba: DWORD cUsageIdentifier; 4e2933c620 2015-04-21 kinaba: LPSTR* rgpszUsageIdentifier; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: alias CTL_USAGE CERT_ENHKEY_USAGE; 4e2933c620 2015-04-21 kinaba: alias CTL_USAGE* PCTRL_USAGE, PCERT_ENHKEY_USAGE; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: struct CERT_USAGE_MATCH { 4e2933c620 2015-04-21 kinaba: DWORD dwType; 4e2933c620 2015-04-21 kinaba: CERT_ENHKEY_USAGE Usage; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: alias CERT_USAGE_MATCH* PCERT_USAGE_MATCH; 4e2933c620 2015-04-21 kinaba: /* #if (_WIN32_WINNT>=0x500) */ 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: struct CERT_CHAIN_PARA { 4e2933c620 2015-04-21 kinaba: DWORD cbSize = CERT_CHAIN_PARA.sizeof; 4e2933c620 2015-04-21 kinaba: CERT_USAGE_MATCH RequestedUsage; 4e2933c620 2015-04-21 kinaba: //#if CERT_CHAIN_PARA_HAS_EXTRA_FIELDS 4e2933c620 2015-04-21 kinaba: CERT_USAGE_MATCH RequestedIssuancePolicy; 4e2933c620 2015-04-21 kinaba: DWORD dwUrlRetrievalTimeout; 4e2933c620 2015-04-21 kinaba: BOOL fCheckRevocationFreshnessTime; 4e2933c620 2015-04-21 kinaba: DWORD dwRevocationFreshnessTime; 4e2933c620 2015-04-21 kinaba: //#endif 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: alias CERT_CHAIN_PARA* PCERT_CHAIN_PARA; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: extern (Windows) alias BOOL function(PCCERT_CONTEXT, void*) 4e2933c620 2015-04-21 kinaba: PFN_CERT_CHAIN_FIND_BY_ISSUER_CALLBACK; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: struct CERT_CHAIN_FIND_BY_ISSUER_PARA { 4e2933c620 2015-04-21 kinaba: DWORD cbSize = CERT_CHAIN_FIND_BY_ISSUER_PARA.sizeof; 4e2933c620 2015-04-21 kinaba: LPCSTR pszUsageIdentifier; 4e2933c620 2015-04-21 kinaba: DWORD dwKeySpec; 4e2933c620 2015-04-21 kinaba: DWORD dwAcquirePrivateKeyFlags; 4e2933c620 2015-04-21 kinaba: DWORD cIssuer; 4e2933c620 2015-04-21 kinaba: CERT_NAME_BLOB* rgIssuer; 4e2933c620 2015-04-21 kinaba: PFN_CERT_CHAIN_FIND_BY_ISSUER_CALLBACK pfnFIndCallback; 4e2933c620 2015-04-21 kinaba: void* pvFindArg; 4e2933c620 2015-04-21 kinaba: DWORD* pdwIssuerChainIndex; 4e2933c620 2015-04-21 kinaba: DWORD* pdwIssuerElementIndex; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: alias CERT_CHAIN_FIND_BY_ISSUER_PARA* PCERT_CHAIN_FIND_BY_ISSUER_PARA; 4e2933c620 2015-04-21 kinaba: /* #endif */ 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: struct CERT_TRUST_STATUS { 4e2933c620 2015-04-21 kinaba: DWORD dwErrorStatus; 4e2933c620 2015-04-21 kinaba: DWORD dwInfoStatus; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: alias CERT_TRUST_STATUS* PCERT_TRUST_STATUS; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: struct CRL_ENTRY { 4e2933c620 2015-04-21 kinaba: CRYPT_INTEGER_BLOB SerialNumber; 4e2933c620 2015-04-21 kinaba: FILETIME RevocationDate; 4e2933c620 2015-04-21 kinaba: DWORD cExtension; 4e2933c620 2015-04-21 kinaba: PCERT_EXTENSION rgExtension; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: alias CRL_ENTRY* PCRL_ENTRY; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: struct CRL_INFO { 4e2933c620 2015-04-21 kinaba: DWORD dwVersion; 4e2933c620 2015-04-21 kinaba: CRYPT_ALGORITHM_IDENTIFIER SignatureAlgorithm; 4e2933c620 2015-04-21 kinaba: CERT_NAME_BLOB Issuer; 4e2933c620 2015-04-21 kinaba: FILETIME ThisUpdate; 4e2933c620 2015-04-21 kinaba: FILETIME NextUpdate; 4e2933c620 2015-04-21 kinaba: DWORD cCRLEntry; 4e2933c620 2015-04-21 kinaba: PCRL_ENTRY rgCRLEntry; 4e2933c620 2015-04-21 kinaba: DWORD cExtension; 4e2933c620 2015-04-21 kinaba: PCERT_EXTENSION rgExtension; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: alias CRL_INFO* PCRL_INFO; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: struct CRL_CONTEXT { 4e2933c620 2015-04-21 kinaba: DWORD dwCertEncodingType; 4e2933c620 2015-04-21 kinaba: BYTE* pbCrlEncoded; 4e2933c620 2015-04-21 kinaba: DWORD cbCrlEncoded; 4e2933c620 2015-04-21 kinaba: PCRL_INFO pCrlInfo; 4e2933c620 2015-04-21 kinaba: HCERTSTORE hCertStore; 4e2933c620 2015-04-21 kinaba: } 9b639cf2d6 2015-05-05 kinaba: alias CRL_CONTEXT* PCRL_CONTEXT; 9b639cf2d6 2015-05-05 kinaba: alias const(CRL_CONTEXT)* PCCRL_CONTEXT; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: struct CERT_REVOCATION_CRL_INFO { 4e2933c620 2015-04-21 kinaba: DWORD cbSize = CERT_REVOCATION_CRL_INFO.sizeof; 4e2933c620 2015-04-21 kinaba: PCCRL_CONTEXT pBaseCRLContext; 4e2933c620 2015-04-21 kinaba: PCCRL_CONTEXT pDeltaCRLContext; 4e2933c620 2015-04-21 kinaba: PCRL_ENTRY pCrlEntry; 4e2933c620 2015-04-21 kinaba: BOOL fDeltaCrlEntry; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: alias CERT_REVOCATION_CRL_INFO* PCERT_REVOCATION_CRL_INFO; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: struct CERT_REVOCATION_INFO { 4e2933c620 2015-04-21 kinaba: DWORD cbSize = CERT_REVOCATION_INFO.sizeof; 4e2933c620 2015-04-21 kinaba: DWORD dwRevocationResult; 4e2933c620 2015-04-21 kinaba: LPCSTR pszRevocationOid; 4e2933c620 2015-04-21 kinaba: LPVOID pvOidSpecificInfo; 4e2933c620 2015-04-21 kinaba: BOOL fHasFreshnessTime; 4e2933c620 2015-04-21 kinaba: DWORD dwFreshnessTime; 4e2933c620 2015-04-21 kinaba: PCERT_REVOCATION_CRL_INFO pCrlInfo; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: alias CERT_REVOCATION_INFO* PCERT_REVOCATION_INFO; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: /* #if (_WIN32_WINNT>=0x500) */ 4e2933c620 2015-04-21 kinaba: struct CERT_CHAIN_ELEMENT { 4e2933c620 2015-04-21 kinaba: DWORD cbSize = CERT_CHAIN_ELEMENT.sizeof; 4e2933c620 2015-04-21 kinaba: PCCERT_CONTEXT pCertContext; 4e2933c620 2015-04-21 kinaba: CERT_TRUST_STATUS TrustStatus; 4e2933c620 2015-04-21 kinaba: PCERT_REVOCATION_INFO pRevocationInfo; 4e2933c620 2015-04-21 kinaba: PCERT_ENHKEY_USAGE pIssuanceUsage; 4e2933c620 2015-04-21 kinaba: PCERT_ENHKEY_USAGE pApplicationUsage; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: alias CERT_CHAIN_ELEMENT* PCERT_CHAIN_ELEMENT; 4e2933c620 2015-04-21 kinaba: /* #endif */ 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: struct CRYPT_ATTRIBUTE { 4e2933c620 2015-04-21 kinaba: LPSTR pszObjId; 4e2933c620 2015-04-21 kinaba: DWORD cValue; 4e2933c620 2015-04-21 kinaba: PCRYPT_ATTR_BLOB rgValue; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: alias CRYPT_ATTRIBUTE* PCRYPT_ATTRIBUTE; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: struct CTL_ENTRY { 4e2933c620 2015-04-21 kinaba: CRYPT_DATA_BLOB SubjectIdentifier; 4e2933c620 2015-04-21 kinaba: DWORD cAttribute; 4e2933c620 2015-04-21 kinaba: PCRYPT_ATTRIBUTE rgAttribute; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: alias CTL_ENTRY* PCTL_ENTRY; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: struct CTL_INFO { 4e2933c620 2015-04-21 kinaba: DWORD dwVersion; 4e2933c620 2015-04-21 kinaba: CTL_USAGE SubjectUsage; 4e2933c620 2015-04-21 kinaba: CRYPT_DATA_BLOB ListIdentifier; 4e2933c620 2015-04-21 kinaba: CRYPT_INTEGER_BLOB SequenceNumber; 4e2933c620 2015-04-21 kinaba: FILETIME ThisUpdate; 4e2933c620 2015-04-21 kinaba: FILETIME NextUpdate; 4e2933c620 2015-04-21 kinaba: CRYPT_ALGORITHM_IDENTIFIER SubjectAlgorithm; 4e2933c620 2015-04-21 kinaba: DWORD cCTLEntry; 4e2933c620 2015-04-21 kinaba: PCTL_ENTRY rgCTLEntry; 4e2933c620 2015-04-21 kinaba: DWORD cExtension; 4e2933c620 2015-04-21 kinaba: PCERT_EXTENSION rgExtension; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: alias CTL_INFO* PCTL_INFO; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: struct CTL_CONTEXT { 4e2933c620 2015-04-21 kinaba: DWORD dwMsgAndCertEncodingType; 4e2933c620 2015-04-21 kinaba: BYTE* pbCtlEncoded; 4e2933c620 2015-04-21 kinaba: DWORD cbCtlEncoded; 4e2933c620 2015-04-21 kinaba: PCTL_INFO pCtlInfo; 4e2933c620 2015-04-21 kinaba: HCERTSTORE hCertStore; 4e2933c620 2015-04-21 kinaba: HCRYPTMSG hCryptMsg; 4e2933c620 2015-04-21 kinaba: BYTE* pbCtlContent; 4e2933c620 2015-04-21 kinaba: DWORD cbCtlContent; 4e2933c620 2015-04-21 kinaba: } 9b639cf2d6 2015-05-05 kinaba: alias CTL_CONTEXT* PCTL_CONTEXT; 9b639cf2d6 2015-05-05 kinaba: alias const(CTL_CONTEXT)* PCCTL_CONTEXT; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: struct CERT_TRUST_LIST_INFO { 4e2933c620 2015-04-21 kinaba: DWORD cbSize = CERT_TRUST_LIST_INFO.sizeof; 4e2933c620 2015-04-21 kinaba: PCTL_ENTRY pCtlEntry; 4e2933c620 2015-04-21 kinaba: PCCTL_CONTEXT pCtlContext; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: alias CERT_TRUST_LIST_INFO* PCERT_TRUST_LIST_INFO; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: struct CERT_SIMPLE_CHAIN { 4e2933c620 2015-04-21 kinaba: DWORD cbSize = CERT_SIMPLE_CHAIN.sizeof; 4e2933c620 2015-04-21 kinaba: CERT_TRUST_STATUS TrustStatus; 4e2933c620 2015-04-21 kinaba: DWORD cElement; 4e2933c620 2015-04-21 kinaba: PCERT_CHAIN_ELEMENT* rgpElement; 4e2933c620 2015-04-21 kinaba: PCERT_TRUST_LIST_INFO pTrustListInfo; 4e2933c620 2015-04-21 kinaba: BOOL fHasRevocationFreshnessTime; 4e2933c620 2015-04-21 kinaba: DWORD dwRevocationFreshnessTime; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: alias CERT_SIMPLE_CHAIN* PCERT_SIMPLE_CHAIN; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: /* #if (_WIN32_WINNT>=0x500) */ 9b639cf2d6 2015-05-05 kinaba: alias const(CERT_CHAIN_CONTEXT)* PCCERT_CHAIN_CONTEXT; 4e2933c620 2015-04-21 kinaba: struct CERT_CHAIN_CONTEXT { 4e2933c620 2015-04-21 kinaba: DWORD cbSize = CERT_CHAIN_CONTEXT.sizeof; 4e2933c620 2015-04-21 kinaba: CERT_TRUST_STATUS TrustStatus; 4e2933c620 2015-04-21 kinaba: DWORD cChain; 4e2933c620 2015-04-21 kinaba: PCERT_SIMPLE_CHAIN* rgpChain; 4e2933c620 2015-04-21 kinaba: DWORD cLowerQualityChainContext; 4e2933c620 2015-04-21 kinaba: PCCERT_CHAIN_CONTEXT* rgpLowerQualityChainContext; 4e2933c620 2015-04-21 kinaba: BOOL fHasRevocationFreshnessTime; 4e2933c620 2015-04-21 kinaba: DWORD dwRevocationFreshnessTime; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: alias CERT_CHAIN_CONTEXT* PCERT_CHAIN_CONTEXT; 4e2933c620 2015-04-21 kinaba: /* #endif */ 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: struct PROV_ENUMALGS { 4e2933c620 2015-04-21 kinaba: ALG_ID aiAlgid; 4e2933c620 2015-04-21 kinaba: DWORD dwBitLen; 4e2933c620 2015-04-21 kinaba: DWORD dwNameLen; 4e2933c620 2015-04-21 kinaba: CHAR[20] szName; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: struct PUBLICKEYSTRUC { 4e2933c620 2015-04-21 kinaba: BYTE bType; 4e2933c620 2015-04-21 kinaba: BYTE bVersion; 4e2933c620 2015-04-21 kinaba: WORD reserved; 4e2933c620 2015-04-21 kinaba: ALG_ID aiKeyAlg; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: alias PUBLICKEYSTRUC BLOBHEADER; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: struct RSAPUBKEY { 4e2933c620 2015-04-21 kinaba: DWORD magic; 4e2933c620 2015-04-21 kinaba: DWORD bitlen; 4e2933c620 2015-04-21 kinaba: DWORD pubexp; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: struct HMAC_INFO { 4e2933c620 2015-04-21 kinaba: ALG_ID HashAlgid; 4e2933c620 2015-04-21 kinaba: BYTE* pbInnerString; 4e2933c620 2015-04-21 kinaba: DWORD cbInnerString; 4e2933c620 2015-04-21 kinaba: BYTE* pbOuterString; 4e2933c620 2015-04-21 kinaba: DWORD cbOuterString; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: alias HMAC_INFO* PHMAC_INFO; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: extern (Windows) { 4e2933c620 2015-04-21 kinaba: BOOL CertCloseStore(HCERTSTORE, DWORD); 4e2933c620 2015-04-21 kinaba: BOOL CertGetCertificateChain(HCERTCHAINENGINE, PCCERT_CONTEXT, LPFILETIME, 4e2933c620 2015-04-21 kinaba: HCERTSTORE, PCERT_CHAIN_PARA, DWORD, LPVOID, PCCERT_CHAIN_CONTEXT*); 4e2933c620 2015-04-21 kinaba: BOOL CertVerifyCertificateChainPolicy(LPCSTR, PCCERT_CHAIN_CONTEXT, 4e2933c620 2015-04-21 kinaba: PCERT_CHAIN_POLICY_PARA, PCERT_CHAIN_POLICY_STATUS); 4e2933c620 2015-04-21 kinaba: void CertFreeCertificateChain(PCCERT_CHAIN_CONTEXT); 4e2933c620 2015-04-21 kinaba: DWORD CertNameToStrA(DWORD, PCERT_NAME_BLOB, DWORD, LPSTR, DWORD); 4e2933c620 2015-04-21 kinaba: DWORD CertNameToStrW(DWORD, PCERT_NAME_BLOB, DWORD, LPWSTR, DWORD); 4e2933c620 2015-04-21 kinaba: HCERTSTORE CertOpenSystemStoreA(HCRYPTPROV, LPCSTR); 4e2933c620 2015-04-21 kinaba: HCERTSTORE CertOpenSystemStoreW(HCRYPTPROV, LPCWSTR); 9b639cf2d6 2015-05-05 kinaba: HCERTSTORE CertOpenStore(LPCSTR, DWORD, HCRYPTPROV, DWORD, const(void)*); 4e2933c620 2015-04-21 kinaba: PCCERT_CONTEXT CertFindCertificateInStore(HCERTSTORE, DWORD, DWORD, DWORD, 9b639cf2d6 2015-05-05 kinaba: const(void)*, PCCERT_CONTEXT); 4e2933c620 2015-04-21 kinaba: BOOL CertFreeCertificateContext(PCCERT_CONTEXT); 4e2933c620 2015-04-21 kinaba: PCCERT_CONTEXT CertGetIssuerCertificateFromStore(HCERTSTORE, 4e2933c620 2015-04-21 kinaba: PCCERT_CONTEXT, PCCERT_CONTEXT, DWORD*); 4e2933c620 2015-04-21 kinaba: PCCERT_CHAIN_CONTEXT CertFindChainInStore(HCERTSTORE, DWORD, DWORD, DWORD, 9b639cf2d6 2015-05-05 kinaba: const(void)*, PCCERT_CHAIN_CONTEXT); 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: BOOL CryptAcquireContextA(HCRYPTPROV*, LPCSTR, LPCSTR, DWORD, DWORD); 4e2933c620 2015-04-21 kinaba: BOOL CryptAcquireContextW(HCRYPTPROV*, LPCWSTR, LPCWSTR, DWORD, DWORD); 4e2933c620 2015-04-21 kinaba: BOOL CryptContextAddRef(HCRYPTPROV, DWORD*, DWORD); 4e2933c620 2015-04-21 kinaba: BOOL CryptReleaseContext(HCRYPTPROV, DWORD); 4e2933c620 2015-04-21 kinaba: BOOL CryptGenKey(HCRYPTPROV, ALG_ID, DWORD, HCRYPTKEY*); 4e2933c620 2015-04-21 kinaba: BOOL CryptDeriveKey(HCRYPTPROV, ALG_ID, HCRYPTHASH, DWORD, HCRYPTKEY*); 4e2933c620 2015-04-21 kinaba: BOOL CryptDestroyKey(HCRYPTKEY); 9b639cf2d6 2015-05-05 kinaba: static if (_WIN32_WINNT >= 0x500) { 4e2933c620 2015-04-21 kinaba: BOOL CryptDuplicateHash(HCRYPTHASH, DWORD*, DWORD, HCRYPTHASH*); 4e2933c620 2015-04-21 kinaba: BOOL CryptDuplicateKey(HCRYPTKEY, DWORD*, DWORD, HCRYPTKEY*); 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: BOOL CryptSetKeyParam(HCRYPTKEY, DWORD, PBYTE, DWORD); 4e2933c620 2015-04-21 kinaba: BOOL CryptGetKeyParam(HCRYPTKEY, DWORD, PBYTE, PDWORD, DWORD); 4e2933c620 2015-04-21 kinaba: BOOL CryptSetHashParam(HCRYPTHASH, DWORD, PBYTE, DWORD); 4e2933c620 2015-04-21 kinaba: BOOL CryptGetHashParam(HCRYPTHASH, DWORD, PBYTE, PDWORD, DWORD); 4e2933c620 2015-04-21 kinaba: BOOL CryptSetProvParam(HCRYPTPROV, DWORD, PBYTE, DWORD); 4e2933c620 2015-04-21 kinaba: BOOL CryptGetProvParam(HCRYPTPROV, DWORD, PBYTE, PDWORD, DWORD); 4e2933c620 2015-04-21 kinaba: BOOL CryptGenRandom(HCRYPTPROV, DWORD, PBYTE); 4e2933c620 2015-04-21 kinaba: BOOL CryptGetUserKey(HCRYPTPROV, DWORD, HCRYPTKEY*); 4e2933c620 2015-04-21 kinaba: BOOL CryptExportKey(HCRYPTKEY, HCRYPTKEY, DWORD, DWORD, PBYTE, PDWORD); 4e2933c620 2015-04-21 kinaba: BOOL CryptImportKey(HCRYPTPROV, PBYTE, DWORD, HCRYPTKEY, DWORD, 4e2933c620 2015-04-21 kinaba: HCRYPTKEY*); 4e2933c620 2015-04-21 kinaba: BOOL CryptEncrypt(HCRYPTKEY, HCRYPTHASH, BOOL, DWORD, PBYTE, PDWORD, 4e2933c620 2015-04-21 kinaba: DWORD); 4e2933c620 2015-04-21 kinaba: BOOL CryptDecrypt(HCRYPTKEY, HCRYPTHASH, BOOL, DWORD, PBYTE, PDWORD); 4e2933c620 2015-04-21 kinaba: BOOL CryptCreateHash(HCRYPTPROV, ALG_ID, HCRYPTKEY, DWORD, HCRYPTHASH*); 4e2933c620 2015-04-21 kinaba: BOOL CryptHashData(HCRYPTHASH, PBYTE, DWORD, DWORD); 4e2933c620 2015-04-21 kinaba: BOOL CryptHashSessionKey(HCRYPTHASH, HCRYPTKEY, DWORD); 4e2933c620 2015-04-21 kinaba: BOOL CryptGetHashValue(HCRYPTHASH, DWORD, PBYTE, PDWORD); 4e2933c620 2015-04-21 kinaba: BOOL CryptDestroyHash(HCRYPTHASH); 4e2933c620 2015-04-21 kinaba: BOOL CryptSignHashA(HCRYPTHASH, DWORD, LPCSTR, DWORD, PBYTE, PDWORD); 4e2933c620 2015-04-21 kinaba: BOOL CryptSignHashW(HCRYPTHASH, DWORD, LPCWSTR, DWORD, PBYTE, PDWORD); 4e2933c620 2015-04-21 kinaba: BOOL CryptVerifySignatureA(HCRYPTHASH, PBYTE, DWORD, HCRYPTKEY, LPCSTR, 4e2933c620 2015-04-21 kinaba: DWORD); 4e2933c620 2015-04-21 kinaba: BOOL CryptVerifySignatureW(HCRYPTHASH, PBYTE, DWORD, HCRYPTKEY, LPCWSTR, 4e2933c620 2015-04-21 kinaba: DWORD); 4e2933c620 2015-04-21 kinaba: BOOL CryptSetProviderA(LPCSTR, DWORD); 4e2933c620 2015-04-21 kinaba: BOOL CryptSetProviderW(LPCWSTR, DWORD); 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: version (Unicode) { 4e2933c620 2015-04-21 kinaba: alias CertNameToStrW CertNameToStr; 4e2933c620 2015-04-21 kinaba: alias CryptAcquireContextW CryptAcquireContext; 4e2933c620 2015-04-21 kinaba: alias CryptSignHashW CryptSignHash; 4e2933c620 2015-04-21 kinaba: alias CryptVerifySignatureW CryptVerifySignature; 4e2933c620 2015-04-21 kinaba: alias CryptSetProviderW CryptSetProvider; 4e2933c620 2015-04-21 kinaba: alias CertOpenSystemStoreW CertOpenSystemStore; 4e2933c620 2015-04-21 kinaba: /+alias CERT_FIND_SUBJECT_STR_W CERT_FIND_SUBJECT_STR; 4e2933c620 2015-04-21 kinaba: alias CERT_FIND_ISSUER_STR_W CERT_FIND_ISSUER_STR;+/ 4e2933c620 2015-04-21 kinaba: } else { 4e2933c620 2015-04-21 kinaba: alias CertNameToStrA CertNameToStr; 4e2933c620 2015-04-21 kinaba: alias CryptAcquireContextA CryptAcquireContext; 4e2933c620 2015-04-21 kinaba: alias CryptSignHashA CryptSignHash; 4e2933c620 2015-04-21 kinaba: alias CryptVerifySignatureA CryptVerifySignature; 4e2933c620 2015-04-21 kinaba: alias CryptSetProviderA CryptSetProvider; 4e2933c620 2015-04-21 kinaba: alias CertOpenSystemStoreA CertOpenSystemStore; 4e2933c620 2015-04-21 kinaba: /+alias CERT_FIND_SUBJECT_STR_A CERT_FIND_SUBJECT_STR; 4e2933c620 2015-04-21 kinaba: alias CERT_FIND_ISSUER_STR_A CERT_FIND_ISSUER_STR;+/ 4e2933c620 2015-04-21 kinaba: }