Artifact 56b59d671f70303711508351508e03b05dff1c2f:
- File
src/win32/wincrypt.d
-
2015-05-05 06:49:05
- part of checkin
[9b639cf2d6]
on branch trunk
- Working version for update to 2.067.
The problem was __gshared. Replacing it with TLS fixed the issue. Remaining problem is that "hack.d"'s CloseHandle hack is not working anymore.
(user: kinaba) [annotate]
-
2015-05-05 06:49:05
- part of checkin
[9b639cf2d6]
on branch trunk
- Working version for update to 2.067.
0000: 2f 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a /*************** 0010: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a **************** 0020: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a **************** 0030: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a **************** 0040: 2a 2a 2a 2a 2a 2a 2a 2a 5c 0d 0a 2a 20 20 20 20 ********\..* 0050: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0060: 20 20 20 20 20 20 20 20 20 20 20 77 69 6e 63 72 wincr 0070: 79 70 74 2e 64 20 20 20 20 20 20 20 20 20 20 20 ypt.d 0080: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0090: 20 20 20 2a 0d 0a 2a 20 20 20 20 20 20 20 20 20 *..* 00a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 00b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 00c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 00d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2a 0d *. 00e0: 0a 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .* 00f0: 20 20 20 20 20 20 20 20 20 57 69 6e 64 6f 77 73 Windows 0100: 20 41 50 49 20 68 65 61 64 65 72 20 6d 6f 64 75 API header modu 0110: 6c 65 20 20 20 20 20 20 20 20 20 20 20 20 20 20 le 0120: 20 20 20 20 20 20 20 20 20 2a 0d 0a 2a 20 20 20 *..* 0130: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0140: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0150: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0160: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0170: 20 20 20 20 2a 0d 0a 2a 20 20 20 20 20 20 20 20 *..* 0180: 20 20 20 20 20 20 20 20 20 54 72 61 6e 73 6c 61 Transla 0190: 74 65 64 20 66 72 6f 6d 20 4d 69 6e 47 57 20 57 ted from MinGW W 01a0: 69 6e 64 6f 77 73 20 68 65 61 64 65 72 73 20 20 indows headers 01b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2a * 01c0: 0d 0a 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 ..* 01d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 79 by 01e0: 20 53 74 65 77 61 72 74 20 47 6f 72 64 6f 6e 20 Stewart Gordon 01f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0200: 20 20 20 20 20 20 20 20 20 20 2a 0d 0a 2a 20 20 *..* 0210: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0220: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0230: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0240: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0250: 20 20 20 20 20 2a 0d 0a 2a 20 20 20 20 20 20 20 *..* 0260: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0270: 50 6c 61 63 65 64 20 69 6e 74 6f 20 70 75 62 6c Placed into publ 0280: 69 63 20 64 6f 6d 61 69 6e 20 20 20 20 20 20 20 ic domain 0290: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 02a0: 2a 0d 0a 5c 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a *..\************ 02b0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a **************** 02c0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a **************** 02d0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a **************** 02e0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2f 0d 0a 6d 6f ***********/..mo 02f0: 64 75 6c 65 20 77 69 6e 33 32 2e 77 69 6e 63 72 dule win32.wincr 0300: 79 70 74 3b 0d 0a 0d 0a 70 72 69 76 61 74 65 20 ypt;....private 0310: 69 6d 70 6f 72 74 20 77 69 6e 33 32 2e 77 33 32 import win32.w32 0320: 61 70 69 2c 20 77 69 6e 33 32 2e 77 69 6e 62 61 api, win32.winba 0330: 73 65 2c 20 77 69 6e 33 32 2e 77 69 6e 64 65 66 se, win32.windef 0340: 3b 0d 0a 0d 0a 2f 2a 20 46 49 58 4d 45 3a 0d 0a ;..../* FIXME:.. 0350: 20 2a 09 54 79 70 65 73 20 6f 66 20 73 6f 6d 65 *.Types of some 0360: 20 63 6f 6e 73 74 61 6e 74 73 0d 0a 20 2a 09 54 constants.. *.T 0370: 79 70 65 73 20 6f 66 20 6d 61 63 72 6f 73 0d 0a ypes of macros.. 0380: 20 2a 09 49 6e 69 74 73 20 6f 66 20 76 61 72 69 *.Inits of vari 0390: 6f 75 73 20 22 73 69 7a 65 22 20 61 6e 64 20 22 ous "size" and " 03a0: 76 65 72 73 69 6f 6e 22 20 6d 65 6d 62 65 72 73 version" members 03b0: 0d 0a 20 2a 09 57 68 79 20 61 72 65 20 73 6f 6d .. *.Why are som 03c0: 65 20 23 69 66 64 65 66 73 20 63 6f 6d 6d 65 6e e #ifdefs commen 03d0: 74 65 64 20 6f 75 74 3f 0d 0a 20 2a 2f 0d 0a 0d ted out?.. */... 03e0: 0a 63 6f 6e 73 74 20 54 43 48 41 52 5b 5d 0d 0a .const TCHAR[].. 03f0: 09 4d 53 5f 44 45 46 5f 50 52 4f 56 20 3d 20 22 .MS_DEF_PROV = " 0400: 4d 69 63 72 6f 73 6f 66 74 20 42 61 73 65 20 43 Microsoft Base C 0410: 72 79 70 74 6f 67 72 61 70 68 69 63 20 50 72 6f ryptographic Pro 0420: 76 69 64 65 72 20 76 31 2e 30 22 2c 0d 0a 09 4d vider v1.0",...M 0430: 53 5f 45 4e 48 41 4e 43 45 44 5f 50 52 4f 56 20 S_ENHANCED_PROV 0440: 3d 20 22 4d 69 63 72 6f 73 6f 66 74 20 45 6e 68 = "Microsoft Enh 0450: 61 6e 63 65 64 20 43 72 79 70 74 6f 67 72 61 70 anced Cryptograp 0460: 68 69 63 20 50 72 6f 76 69 64 65 72 20 76 31 2e hic Provider v1. 0470: 30 22 2c 0d 0a 09 4d 53 5f 53 54 52 4f 4e 47 5f 0",...MS_STRONG_ 0480: 50 52 4f 56 20 3d 20 22 4d 69 63 72 6f 73 6f 66 PROV = "Microsof 0490: 74 20 53 74 72 6f 6e 67 20 43 72 79 70 74 6f 67 t Strong Cryptog 04a0: 72 61 70 68 69 63 20 50 72 6f 76 69 64 65 72 22 raphic Provider" 04b0: 2c 0d 0a 09 4d 53 5f 44 45 46 5f 52 53 41 5f 53 ,...MS_DEF_RSA_S 04c0: 49 47 5f 50 52 4f 56 20 3d 20 22 4d 69 63 72 6f IG_PROV = "Micro 04d0: 73 6f 66 74 20 52 53 41 20 53 69 67 6e 61 74 75 soft RSA Signatu 04e0: 72 65 20 43 72 79 70 74 6f 67 72 61 70 68 69 63 re Cryptographic 04f0: 20 50 72 6f 76 69 64 65 72 22 2c 0d 0a 09 4d 53 Provider",...MS 0500: 5f 44 45 46 5f 52 53 41 5f 53 43 48 41 4e 4e 45 _DEF_RSA_SCHANNE 0510: 4c 5f 50 52 4f 56 20 3d 20 22 4d 69 63 72 6f 73 L_PROV = "Micros 0520: 6f 66 74 20 52 53 41 20 53 43 68 61 6e 6e 65 6c oft RSA SChannel 0530: 20 43 72 79 70 74 6f 67 72 61 70 68 69 63 20 50 Cryptographic P 0540: 72 6f 76 69 64 65 72 22 2c 0d 0a 09 4d 53 5f 44 rovider",...MS_D 0550: 45 46 5f 44 53 53 5f 50 52 4f 56 20 3d 20 22 4d EF_DSS_PROV = "M 0560: 69 63 72 6f 73 6f 66 74 20 42 61 73 65 20 44 53 icrosoft Base DS 0570: 53 20 43 72 79 70 74 6f 67 72 61 70 68 69 63 20 S Cryptographic 0580: 50 72 6f 76 69 64 65 72 22 2c 0d 0a 09 4d 53 5f Provider",...MS_ 0590: 44 45 46 5f 44 53 53 5f 44 48 5f 50 52 4f 56 0d DEF_DSS_DH_PROV. 05a0: 0a 09 20 20 3d 20 22 4d 69 63 72 6f 73 6f 66 74 .. = "Microsoft 05b0: 20 42 61 73 65 20 44 53 53 20 61 6e 64 20 44 69 Base DSS and Di 05c0: 66 66 69 65 2d 48 65 6c 6c 6d 61 6e 20 43 72 79 ffie-Hellman Cry 05d0: 70 74 6f 67 72 61 70 68 69 63 20 50 72 6f 76 69 ptographic Provi 05e0: 64 65 72 22 2c 0d 0a 09 4d 53 5f 45 4e 48 5f 44 der",...MS_ENH_D 05f0: 53 53 5f 44 48 5f 50 52 4f 56 0d 0a 09 20 20 3d SS_DH_PROV... = 0600: 20 22 4d 69 63 72 6f 73 6f 66 74 20 45 6e 68 61 "Microsoft Enha 0610: 6e 63 65 64 20 44 53 53 20 61 6e 64 20 44 69 66 nced DSS and Dif 0620: 66 69 65 2d 48 65 6c 6c 6d 61 6e 20 43 72 79 70 fie-Hellman Cryp 0630: 74 6f 67 72 61 70 68 69 63 20 50 72 6f 76 69 64 tographic Provid 0640: 65 72 22 2c 0d 0a 09 4d 53 5f 44 45 46 5f 44 48 er",...MS_DEF_DH 0650: 5f 53 43 48 41 4e 4e 45 4c 5f 50 52 4f 56 20 3d _SCHANNEL_PROV = 0660: 20 22 4d 69 63 72 6f 73 6f 66 74 20 44 48 20 53 "Microsoft DH S 0670: 43 68 61 6e 6e 65 6c 20 43 72 79 70 74 6f 67 72 Channel Cryptogr 0680: 61 70 68 69 63 20 50 72 6f 76 69 64 65 72 22 2c aphic Provider", 0690: 0d 0a 09 4d 53 5f 53 43 41 52 44 5f 50 52 4f 56 ...MS_SCARD_PROV 06a0: 20 3d 20 22 4d 69 63 72 6f 73 6f 66 74 20 42 61 = "Microsoft Ba 06b0: 73 65 20 53 6d 61 72 74 20 43 61 72 64 20 43 72 se Smart Card Cr 06c0: 79 70 74 6f 20 50 72 6f 76 69 64 65 72 22 3b 0d ypto Provider";. 06d0: 0a 0d 0a 73 74 61 74 69 63 20 69 66 20 28 5f 57 ...static if (_W 06e0: 49 4e 33 32 5f 57 49 4e 4e 54 20 3e 20 30 78 35 IN32_WINNT > 0x5 06f0: 30 31 29 20 7b 0d 0a 09 63 6f 6e 73 74 20 54 43 01) {...const TC 0700: 48 41 52 5b 5d 20 4d 53 5f 45 4e 48 5f 52 53 41 HAR[] MS_ENH_RSA 0710: 5f 41 45 53 5f 50 52 4f 56 0d 0a 09 20 20 3d 20 _AES_PROV... = 0720: 22 4d 69 63 72 6f 73 6f 66 74 20 45 6e 68 61 6e "Microsoft Enhan 0730: 63 65 64 20 52 53 41 20 61 6e 64 20 41 45 53 20 ced RSA and AES 0740: 43 72 79 70 74 6f 67 72 61 70 68 69 63 20 50 72 Cryptographic Pr 0750: 6f 76 69 64 65 72 22 3b 0d 0a 7d 20 65 6c 73 65 ovider";..} else 0760: 20 73 74 61 74 69 63 20 69 66 20 28 5f 57 49 4e static if (_WIN 0770: 33 32 5f 57 49 4e 4e 54 20 3d 3d 20 30 78 35 30 32_WINNT == 0x50 0780: 31 29 20 7b 0d 0a 09 63 6f 6e 73 74 20 54 43 48 1) {...const TCH 0790: 41 52 5b 5d 20 4d 53 5f 45 4e 48 5f 52 53 41 5f AR[] MS_ENH_RSA_ 07a0: 41 45 53 5f 50 52 4f 56 0d 0a 09 20 20 3d 20 22 AES_PROV... = " 07b0: 4d 69 63 72 6f 73 6f 66 74 20 45 6e 68 61 6e 63 Microsoft Enhanc 07c0: 65 64 20 52 53 41 20 61 6e 64 20 41 45 53 20 43 ed RSA and AES C 07d0: 72 79 70 74 6f 67 72 61 70 68 69 63 20 50 72 6f ryptographic Pro 07e0: 76 69 64 65 72 20 28 50 72 6f 74 6f 74 79 70 65 vider (Prototype 07f0: 29 22 3b 0d 0a 7d 0d 0a 0d 0a 41 4c 47 5f 49 44 )";..}....ALG_ID 0800: 20 47 45 54 5f 41 4c 47 5f 43 4c 41 53 53 28 41 GET_ALG_CLASS(A 0810: 4c 47 5f 49 44 20 78 29 20 7b 20 72 65 74 75 72 LG_ID x) { retur 0820: 6e 20 78 20 26 20 30 78 45 30 30 30 3b 20 7d 0d n x & 0xE000; }. 0830: 0a 41 4c 47 5f 49 44 20 47 45 54 5f 41 4c 47 5f .ALG_ID GET_ALG_ 0840: 54 59 50 45 20 28 41 4c 47 5f 49 44 20 78 29 20 TYPE (ALG_ID x) 0850: 7b 20 72 65 74 75 72 6e 20 78 20 26 20 30 78 31 { return x & 0x1 0860: 45 30 30 3b 20 7d 0d 0a 41 4c 47 5f 49 44 20 47 E00; }..ALG_ID G 0870: 45 54 5f 41 4c 47 5f 53 49 44 20 20 28 41 4c 47 ET_ALG_SID (ALG 0880: 5f 49 44 20 78 29 20 7b 20 72 65 74 75 72 6e 20 _ID x) { return 0890: 78 20 26 20 30 78 30 31 46 46 3b 20 7d 0d 0a 0d x & 0x01FF; }... 08a0: 0a 65 6e 75 6d 20 3a 20 41 4c 47 5f 49 44 20 7b .enum : ALG_ID { 08b0: 0d 0a 09 41 4c 47 5f 43 4c 41 53 53 5f 41 4e 59 ...ALG_CLASS_ANY 08c0: 20 20 20 20 20 20 20 20 20 20 20 3d 20 30 2c 0d = 0,. 08d0: 0a 09 41 4c 47 5f 43 4c 41 53 53 5f 53 49 47 4e ..ALG_CLASS_SIGN 08e0: 41 54 55 52 45 20 20 20 20 20 3d 20 30 78 32 30 ATURE = 0x20 08f0: 30 30 2c 0d 0a 09 41 4c 47 5f 43 4c 41 53 53 5f 00,...ALG_CLASS_ 0900: 4d 53 47 5f 45 4e 43 52 59 50 54 20 20 20 3d 20 MSG_ENCRYPT = 0910: 30 78 34 30 30 30 2c 0d 0a 09 41 4c 47 5f 43 4c 0x4000,...ALG_CL 0920: 41 53 53 5f 44 41 54 41 5f 45 4e 43 52 59 50 54 ASS_DATA_ENCRYPT 0930: 20 20 3d 20 30 78 36 30 30 30 2c 0d 0a 09 41 4c = 0x6000,...AL 0940: 47 5f 43 4c 41 53 53 5f 48 41 53 48 20 20 20 20 G_CLASS_HASH 0950: 20 20 20 20 20 20 3d 20 30 78 38 30 30 30 2c 0d = 0x8000,. 0960: 0a 09 41 4c 47 5f 43 4c 41 53 53 5f 4b 45 59 5f ..ALG_CLASS_KEY_ 0970: 45 58 43 48 41 4e 47 45 20 20 3d 20 30 78 41 30 EXCHANGE = 0xA0 0980: 30 30 2c 0d 0a 09 41 4c 47 5f 43 4c 41 53 53 5f 00,...ALG_CLASS_ 0990: 41 4c 4c 20 20 20 20 20 20 20 20 20 20 20 3d 20 ALL = 09a0: 30 78 45 30 30 30 0d 0a 7d 0d 0a 0d 0a 65 6e 75 0xE000..}....enu 09b0: 6d 20 3a 20 41 4c 47 5f 49 44 20 7b 0d 0a 09 41 m : ALG_ID {...A 09c0: 4c 47 5f 54 59 50 45 5f 41 4e 59 20 20 20 20 20 LG_TYPE_ANY 09d0: 20 20 20 20 20 20 3d 20 30 2c 0d 0a 09 41 4c 47 = 0,...ALG 09e0: 5f 54 59 50 45 5f 44 53 53 20 20 20 20 20 20 20 _TYPE_DSS 09f0: 20 20 20 20 3d 20 30 78 30 32 30 30 2c 0d 0a 09 = 0x0200,... 0a00: 41 4c 47 5f 54 59 50 45 5f 52 53 41 20 20 20 20 ALG_TYPE_RSA 0a10: 20 20 20 20 20 20 20 3d 20 30 78 30 34 30 30 2c = 0x0400, 0a20: 0d 0a 09 41 4c 47 5f 54 59 50 45 5f 42 4c 4f 43 ...ALG_TYPE_BLOC 0a30: 4b 20 20 20 20 20 20 20 20 20 3d 20 30 78 30 36 K = 0x06 0a40: 30 30 2c 0d 0a 09 41 4c 47 5f 54 59 50 45 5f 53 00,...ALG_TYPE_S 0a50: 54 52 45 41 4d 20 20 20 20 20 20 20 20 3d 20 30 TREAM = 0 0a60: 78 30 38 30 30 2c 0d 0a 09 41 4c 47 5f 54 59 50 x0800,...ALG_TYP 0a70: 45 5f 44 48 20 20 20 20 20 20 20 20 20 20 20 20 E_DH 0a80: 3d 20 30 78 30 41 30 30 2c 0d 0a 09 41 4c 47 5f = 0x0A00,...ALG_ 0a90: 54 59 50 45 5f 53 45 43 55 52 45 43 48 41 4e 4e TYPE_SECURECHANN 0aa0: 45 4c 20 3d 20 30 78 30 43 30 30 0d 0a 7d 0d 0a EL = 0x0C00..}.. 0ab0: 0d 0a 65 6e 75 6d 20 3a 20 41 4c 47 5f 49 44 20 ..enum : ALG_ID 0ac0: 7b 0d 0a 09 41 4c 47 5f 53 49 44 5f 41 4e 59 20 {...ALG_SID_ANY 0ad0: 20 20 20 20 20 20 20 20 20 3d 20 20 30 2c 0d 0a = 0,.. 0ae0: 09 41 4c 47 5f 53 49 44 5f 52 53 41 5f 41 4e 59 .ALG_SID_RSA_ANY 0af0: 20 20 20 20 20 20 3d 20 20 30 2c 0d 0a 09 41 4c = 0,...AL 0b00: 47 5f 53 49 44 5f 52 53 41 5f 50 4b 43 53 2c 0d G_SID_RSA_PKCS,. 0b10: 0a 09 41 4c 47 5f 53 49 44 5f 52 53 41 5f 4d 53 ..ALG_SID_RSA_MS 0b20: 41 54 57 4f 52 4b 2c 0d 0a 09 41 4c 47 5f 53 49 ATWORK,...ALG_SI 0b30: 44 5f 52 53 41 5f 45 4e 54 52 55 53 54 2c 0d 0a D_RSA_ENTRUST,.. 0b40: 09 41 4c 47 5f 53 49 44 5f 52 53 41 5f 50 47 50 .ALG_SID_RSA_PGP 0b50: 2c 20 20 2f 2f 20 3d 20 20 34 0d 0a 09 41 4c 47 , // = 4...ALG 0b60: 5f 53 49 44 5f 44 53 53 5f 41 4e 59 20 20 20 20 _SID_DSS_ANY 0b70: 20 20 3d 20 20 30 2c 0d 0a 09 41 4c 47 5f 53 49 = 0,...ALG_SI 0b80: 44 5f 44 53 53 5f 50 4b 43 53 2c 0d 0a 09 41 4c D_DSS_PKCS,...AL 0b90: 47 5f 53 49 44 5f 44 53 53 5f 44 4d 53 2c 20 20 G_SID_DSS_DMS, 0ba0: 2f 2f 20 3d 20 20 32 0d 0a 09 41 4c 47 5f 53 49 // = 2...ALG_SI 0bb0: 44 5f 44 45 53 20 20 20 20 20 20 20 20 20 20 3d D_DES = 0bc0: 20 20 31 2c 0d 0a 09 41 4c 47 5f 53 49 44 5f 33 1,...ALG_SID_3 0bd0: 44 45 53 20 20 20 20 20 20 20 20 20 3d 20 20 33 DES = 3 0be0: 2c 0d 0a 09 41 4c 47 5f 53 49 44 5f 44 45 53 58 ,...ALG_SID_DESX 0bf0: 2c 0d 0a 09 41 4c 47 5f 53 49 44 5f 49 44 45 41 ,...ALG_SID_IDEA 0c00: 2c 0d 0a 09 41 4c 47 5f 53 49 44 5f 43 41 53 54 ,...ALG_SID_CAST 0c10: 2c 0d 0a 09 41 4c 47 5f 53 49 44 5f 53 41 46 45 ,...ALG_SID_SAFE 0c20: 52 53 4b 36 34 2c 0d 0a 09 41 4c 47 5f 53 49 44 RSK64,...ALG_SID 0c30: 5f 53 41 46 45 52 53 4b 31 32 38 2c 0d 0a 09 41 _SAFERSK128,...A 0c40: 4c 47 5f 53 49 44 5f 33 44 45 53 5f 31 31 32 2c LG_SID_3DES_112, 0c50: 0d 0a 09 41 4c 47 5f 53 49 44 5f 53 4b 49 50 4a ...ALG_SID_SKIPJ 0c60: 41 43 4b 2c 0d 0a 09 41 4c 47 5f 53 49 44 5f 54 ACK,...ALG_SID_T 0c70: 45 4b 2c 0d 0a 09 41 4c 47 5f 53 49 44 5f 43 59 EK,...ALG_SID_CY 0c80: 4c 49 4e 4b 5f 4d 45 4b 2c 0d 0a 09 41 4c 47 5f LINK_MEK,...ALG_ 0c90: 53 49 44 5f 52 43 35 2c 20 20 20 20 20 20 2f 2f SID_RC5, // 0ca0: 20 3d 20 31 33 0d 0a 09 41 4c 47 5f 53 49 44 5f = 13...ALG_SID_ 0cb0: 52 43 32 20 20 20 20 20 20 20 20 20 20 3d 20 20 RC2 = 0cc0: 32 2c 0d 0a 09 41 4c 47 5f 53 49 44 5f 52 43 34 2,...ALG_SID_RC4 0cd0: 20 20 20 20 20 20 20 20 20 20 3d 20 20 31 2c 0d = 1,. 0ce0: 0a 09 41 4c 47 5f 53 49 44 5f 53 45 41 4c 20 20 ..ALG_SID_SEAL 0cf0: 20 20 20 20 20 20 20 3d 20 20 32 2c 0d 0a 09 41 = 2,...A 0d00: 4c 47 5f 53 49 44 5f 4d 44 32 20 20 20 20 20 20 LG_SID_MD2 0d10: 20 20 20 20 3d 20 20 31 2c 0d 0a 09 41 4c 47 5f = 1,...ALG_ 0d20: 53 49 44 5f 4d 44 34 2c 0d 0a 09 41 4c 47 5f 53 SID_MD4,...ALG_S 0d30: 49 44 5f 4d 44 35 2c 0d 0a 09 41 4c 47 5f 53 49 ID_MD5,...ALG_SI 0d40: 44 5f 53 48 41 2c 0d 0a 09 41 4c 47 5f 53 49 44 D_SHA,...ALG_SID 0d50: 5f 4d 41 43 2c 0d 0a 09 41 4c 47 5f 53 49 44 5f _MAC,...ALG_SID_ 0d60: 52 49 50 45 4d 44 2c 0d 0a 09 41 4c 47 5f 53 49 RIPEMD,...ALG_SI 0d70: 44 5f 52 49 50 45 4d 44 31 36 30 2c 0d 0a 09 41 D_RIPEMD160,...A 0d80: 4c 47 5f 53 49 44 5f 53 53 4c 33 53 48 41 4d 44 LG_SID_SSL3SHAMD 0d90: 35 2c 0d 0a 09 41 4c 47 5f 53 49 44 5f 48 4d 41 5,...ALG_SID_HMA 0da0: 43 2c 0d 0a 09 41 4c 47 5f 53 49 44 5f 54 4c 53 C,...ALG_SID_TLS 0db0: 31 50 52 46 2c 20 20 2f 2f 20 3d 20 31 30 0d 0a 1PRF, // = 10.. 0dc0: 09 41 4c 47 5f 53 49 44 5f 41 45 53 5f 31 32 38 .ALG_SID_AES_128 0dd0: 20 20 20 20 20 20 3d 20 31 34 2c 0d 0a 09 41 4c = 14,...AL 0de0: 47 5f 53 49 44 5f 41 45 53 5f 31 39 32 2c 0d 0a G_SID_AES_192,.. 0df0: 09 41 4c 47 5f 53 49 44 5f 41 45 53 5f 32 35 36 .ALG_SID_AES_256 0e00: 2c 0d 0a 09 41 4c 47 5f 53 49 44 5f 41 45 53 2c ,...ALG_SID_AES, 0e10: 20 20 20 20 20 20 2f 2f 20 3d 20 31 37 0d 0a 09 // = 17... 0e20: 41 4c 47 5f 53 49 44 5f 45 58 41 4d 50 4c 45 20 ALG_SID_EXAMPLE 0e30: 20 20 20 20 20 3d 20 38 30 0d 0a 7d 0d 0a 0d 0a = 80..}.... 0e40: 65 6e 75 6d 20 3a 20 41 4c 47 5f 49 44 20 7b 0d enum : ALG_ID {. 0e50: 0a 09 43 41 4c 47 5f 4d 44 32 20 20 20 20 20 20 ..CALG_MD2 0e60: 20 20 3d 20 41 4c 47 5f 43 4c 41 53 53 5f 48 41 = ALG_CLASS_HA 0e70: 53 48 20 7c 20 41 4c 47 5f 54 59 50 45 5f 41 4e SH | ALG_TYPE_AN 0e80: 59 20 7c 20 41 4c 47 5f 53 49 44 5f 4d 44 32 2c Y | ALG_SID_MD2, 0e90: 0d 0a 09 43 41 4c 47 5f 4d 44 34 20 20 20 20 20 ...CALG_MD4 0ea0: 20 20 20 3d 20 41 4c 47 5f 43 4c 41 53 53 5f 48 = ALG_CLASS_H 0eb0: 41 53 48 20 7c 20 41 4c 47 5f 54 59 50 45 5f 41 ASH | ALG_TYPE_A 0ec0: 4e 59 20 7c 20 41 4c 47 5f 53 49 44 5f 4d 44 34 NY | ALG_SID_MD4 0ed0: 2c 0d 0a 09 43 41 4c 47 5f 4d 44 35 20 20 20 20 ,...CALG_MD5 0ee0: 20 20 20 20 3d 20 41 4c 47 5f 43 4c 41 53 53 5f = ALG_CLASS_ 0ef0: 48 41 53 48 20 7c 20 41 4c 47 5f 54 59 50 45 5f HASH | ALG_TYPE_ 0f00: 41 4e 59 20 7c 20 41 4c 47 5f 53 49 44 5f 4d 44 ANY | ALG_SID_MD 0f10: 35 2c 0d 0a 09 43 41 4c 47 5f 53 48 41 20 20 20 5,...CALG_SHA 0f20: 20 20 20 20 20 3d 20 41 4c 47 5f 43 4c 41 53 53 = ALG_CLASS 0f30: 5f 48 41 53 48 20 7c 20 41 4c 47 5f 54 59 50 45 _HASH | ALG_TYPE 0f40: 5f 41 4e 59 20 7c 20 41 4c 47 5f 53 49 44 5f 53 _ANY | ALG_SID_S 0f50: 48 41 2c 0d 0a 09 43 41 4c 47 5f 53 48 41 31 20 HA,...CALG_SHA1 0f60: 20 20 20 20 20 20 3d 20 43 41 4c 47 5f 53 48 41 = CALG_SHA 0f70: 2c 0d 0a 09 43 41 4c 47 5f 4d 41 43 20 20 20 20 ,...CALG_MAC 0f80: 20 20 20 20 3d 20 41 4c 47 5f 43 4c 41 53 53 5f = ALG_CLASS_ 0f90: 48 41 53 48 20 7c 20 41 4c 47 5f 54 59 50 45 5f HASH | ALG_TYPE_ 0fa0: 41 4e 59 20 7c 20 41 4c 47 5f 53 49 44 5f 4d 41 ANY | ALG_SID_MA 0fb0: 43 2c 0d 0a 09 43 41 4c 47 5f 33 44 45 53 20 20 C,...CALG_3DES 0fc0: 20 20 20 20 20 3d 20 41 4c 47 5f 43 4c 41 53 53 = ALG_CLASS 0fd0: 5f 44 41 54 41 5f 45 4e 43 52 59 50 54 20 7c 20 _DATA_ENCRYPT | 0fe0: 41 4c 47 5f 54 59 50 45 5f 42 4c 4f 43 4b 20 7c ALG_TYPE_BLOCK | 0ff0: 20 33 2c 0d 0a 09 43 41 4c 47 5f 43 59 4c 49 4e 3,...CALG_CYLIN 1000: 4b 5f 4d 45 4b 20 3d 20 41 4c 47 5f 43 4c 41 53 K_MEK = ALG_CLAS 1010: 53 5f 44 41 54 41 5f 45 4e 43 52 59 50 54 20 7c S_DATA_ENCRYPT | 1020: 20 41 4c 47 5f 54 59 50 45 5f 42 4c 4f 43 4b 20 ALG_TYPE_BLOCK 1030: 7c 20 31 32 2c 0d 0a 09 43 41 4c 47 5f 53 4b 49 | 12,...CALG_SKI 1040: 50 4a 41 43 4b 20 20 20 3d 20 41 4c 47 5f 43 4c PJACK = ALG_CL 1050: 41 53 53 5f 44 41 54 41 5f 45 4e 43 52 59 50 54 ASS_DATA_ENCRYPT 1060: 20 7c 20 41 4c 47 5f 54 59 50 45 5f 42 4c 4f 43 | ALG_TYPE_BLOC 1070: 4b 20 7c 20 31 30 2c 0d 0a 09 43 41 4c 47 5f 4b K | 10,...CALG_K 1080: 45 41 5f 4b 45 59 58 20 20 20 3d 20 41 4c 47 5f EA_KEYX = ALG_ 1090: 43 4c 41 53 53 5f 4b 45 59 5f 45 58 43 48 41 4e CLASS_KEY_EXCHAN 10a0: 47 45 20 7c 20 41 4c 47 5f 54 59 50 45 5f 53 54 GE | ALG_TYPE_ST 10b0: 52 45 41 4d 20 7c 20 41 4c 47 5f 54 59 50 45 5f REAM | ALG_TYPE_ 10c0: 44 53 53 20 7c 20 34 2c 0d 0a 09 43 41 4c 47 5f DSS | 4,...CALG_ 10d0: 52 53 41 5f 53 49 47 4e 20 20 20 3d 20 41 4c 47 RSA_SIGN = ALG 10e0: 5f 43 4c 41 53 53 5f 53 49 47 4e 41 54 55 52 45 _CLASS_SIGNATURE 10f0: 20 7c 20 41 4c 47 5f 54 59 50 45 5f 52 53 41 20 | ALG_TYPE_RSA 1100: 7c 20 41 4c 47 5f 53 49 44 5f 52 53 41 5f 41 4e | ALG_SID_RSA_AN 1110: 59 2c 0d 0a 09 43 41 4c 47 5f 44 53 53 5f 53 49 Y,...CALG_DSS_SI 1120: 47 4e 20 20 20 3d 20 41 4c 47 5f 43 4c 41 53 53 GN = ALG_CLASS 1130: 5f 53 49 47 4e 41 54 55 52 45 20 7c 20 41 4c 47 _SIGNATURE | ALG 1140: 5f 54 59 50 45 5f 44 53 53 20 7c 20 41 4c 47 5f _TYPE_DSS | ALG_ 1150: 53 49 44 5f 44 53 53 5f 41 4e 59 2c 0d 0a 09 43 SID_DSS_ANY,...C 1160: 41 4c 47 5f 52 53 41 5f 4b 45 59 58 20 20 20 3d ALG_RSA_KEYX = 1170: 20 41 4c 47 5f 43 4c 41 53 53 5f 4b 45 59 5f 45 ALG_CLASS_KEY_E 1180: 58 43 48 41 4e 47 45 20 7c 20 41 4c 47 5f 54 59 XCHANGE | ALG_TY 1190: 50 45 5f 52 53 41 20 7c 20 41 4c 47 5f 53 49 44 PE_RSA | ALG_SID 11a0: 5f 52 53 41 5f 41 4e 59 2c 0d 0a 09 43 41 4c 47 _RSA_ANY,...CALG 11b0: 5f 44 45 53 20 20 20 20 20 20 20 20 3d 20 41 4c _DES = AL 11c0: 47 5f 43 4c 41 53 53 5f 44 41 54 41 5f 45 4e 43 G_CLASS_DATA_ENC 11d0: 52 59 50 54 20 7c 20 41 4c 47 5f 54 59 50 45 5f RYPT | ALG_TYPE_ 11e0: 42 4c 4f 43 4b 20 7c 20 41 4c 47 5f 53 49 44 5f BLOCK | ALG_SID_ 11f0: 44 45 53 2c 0d 0a 09 43 41 4c 47 5f 52 43 32 20 DES,...CALG_RC2 1200: 20 20 20 20 20 20 20 3d 20 41 4c 47 5f 43 4c 41 = ALG_CLA 1210: 53 53 5f 44 41 54 41 5f 45 4e 43 52 59 50 54 20 SS_DATA_ENCRYPT 1220: 7c 20 41 4c 47 5f 54 59 50 45 5f 42 4c 4f 43 4b | ALG_TYPE_BLOCK 1230: 20 7c 20 41 4c 47 5f 53 49 44 5f 52 43 32 2c 0d | ALG_SID_RC2,. 1240: 0a 09 43 41 4c 47 5f 52 43 34 20 20 20 20 20 20 ..CALG_RC4 1250: 20 20 3d 20 41 4c 47 5f 43 4c 41 53 53 5f 44 41 = ALG_CLASS_DA 1260: 54 41 5f 45 4e 43 52 59 50 54 20 7c 20 41 4c 47 TA_ENCRYPT | ALG 1270: 5f 54 59 50 45 5f 53 54 52 45 41 4d 20 7c 20 41 _TYPE_STREAM | A 1280: 4c 47 5f 53 49 44 5f 52 43 34 2c 0d 0a 09 43 41 LG_SID_RC4,...CA 1290: 4c 47 5f 53 45 41 4c 20 20 20 20 20 20 20 3d 20 LG_SEAL = 12a0: 41 4c 47 5f 43 4c 41 53 53 5f 44 41 54 41 5f 45 ALG_CLASS_DATA_E 12b0: 4e 43 52 59 50 54 20 7c 20 41 4c 47 5f 54 59 50 NCRYPT | ALG_TYP 12c0: 45 5f 53 54 52 45 41 4d 20 7c 20 41 4c 47 5f 53 E_STREAM | ALG_S 12d0: 49 44 5f 53 45 41 4c 2c 0d 0a 09 43 41 4c 47 5f ID_SEAL,...CALG_ 12e0: 44 48 5f 45 50 48 45 4d 20 20 20 3d 20 41 4c 47 DH_EPHEM = ALG 12f0: 5f 43 4c 41 53 53 5f 4b 45 59 5f 45 58 43 48 41 _CLASS_KEY_EXCHA 1300: 4e 47 45 20 7c 20 41 4c 47 5f 54 59 50 45 5f 53 NGE | ALG_TYPE_S 1310: 54 52 45 41 4d 20 7c 20 41 4c 47 5f 54 59 50 45 TREAM | ALG_TYPE 1320: 5f 44 53 53 0d 0a 09 20 20 20 20 20 20 20 20 20 _DSS... 1330: 20 20 20 20 20 20 20 20 20 7c 20 41 4c 47 5f 53 | ALG_S 1340: 49 44 5f 44 53 53 5f 44 4d 53 2c 0d 0a 09 43 41 ID_DSS_DMS,...CA 1350: 4c 47 5f 44 45 53 58 20 20 20 20 20 20 20 3d 20 LG_DESX = 1360: 41 4c 47 5f 43 4c 41 53 53 5f 44 41 54 41 5f 45 ALG_CLASS_DATA_E 1370: 4e 43 52 59 50 54 20 7c 20 41 4c 47 5f 54 59 50 NCRYPT | ALG_TYP 1380: 45 5f 42 4c 4f 43 4b 20 7c 20 41 4c 47 5f 53 49 E_BLOCK | ALG_SI 1390: 44 5f 44 45 53 58 2c 0d 0a 2f 2f 20 69 73 20 75 D_DESX,..// is u 13a0: 6e 64 65 66 69 6e 65 64 20 41 4c 47 5f 43 4c 41 ndefined ALG_CLA 13b0: 53 53 5f 44 48 41 53 48 20 69 6e 20 4d 69 6e 47 SS_DHASH in MinG 13c0: 57 20 2d 20 70 72 65 73 75 6d 69 6e 67 20 74 79 W - presuming ty 13d0: 70 6f 0d 0a 09 43 41 4c 47 5f 54 4c 53 31 50 52 po...CALG_TLS1PR 13e0: 46 20 20 20 20 3d 20 41 4c 47 5f 43 4c 41 53 53 F = ALG_CLASS 13f0: 5f 48 41 53 48 20 7c 20 41 4c 47 5f 54 59 50 45 _HASH | ALG_TYPE 1400: 5f 41 4e 59 20 7c 20 41 4c 47 5f 53 49 44 5f 54 _ANY | ALG_SID_T 1410: 4c 53 31 50 52 46 2c 0d 0a 09 43 41 4c 47 5f 41 LS1PRF,...CALG_A 1420: 45 53 5f 31 32 38 20 20 20 20 3d 20 41 4c 47 5f ES_128 = ALG_ 1430: 43 4c 41 53 53 5f 44 41 54 41 5f 45 4e 43 52 59 CLASS_DATA_ENCRY 1440: 50 54 20 7c 20 41 4c 47 5f 54 59 50 45 5f 42 4c PT | ALG_TYPE_BL 1450: 4f 43 4b 20 7c 20 41 4c 47 5f 53 49 44 5f 41 45 OCK | ALG_SID_AE 1460: 53 5f 31 32 38 2c 0d 0a 09 43 41 4c 47 5f 41 45 S_128,...CALG_AE 1470: 53 5f 31 39 32 20 20 20 20 3d 20 41 4c 47 5f 43 S_192 = ALG_C 1480: 4c 41 53 53 5f 44 41 54 41 5f 45 4e 43 52 59 50 LASS_DATA_ENCRYP 1490: 54 20 7c 20 41 4c 47 5f 54 59 50 45 5f 42 4c 4f T | ALG_TYPE_BLO 14a0: 43 4b 20 7c 20 41 4c 47 5f 53 49 44 5f 41 45 53 CK | ALG_SID_AES 14b0: 5f 31 39 32 2c 0d 0a 09 43 41 4c 47 5f 41 45 53 _192,...CALG_AES 14c0: 5f 32 35 36 20 20 20 20 3d 20 41 4c 47 5f 43 4c _256 = ALG_CL 14d0: 41 53 53 5f 44 41 54 41 5f 45 4e 43 52 59 50 54 ASS_DATA_ENCRYPT 14e0: 20 7c 20 41 4c 47 5f 54 59 50 45 5f 42 4c 4f 43 | ALG_TYPE_BLOC 14f0: 4b 20 7c 20 41 4c 47 5f 53 49 44 5f 41 45 53 5f K | ALG_SID_AES_ 1500: 32 35 36 2c 0d 0a 09 43 41 4c 47 5f 41 45 53 20 256,...CALG_AES 1510: 20 20 20 20 20 20 20 3d 20 41 4c 47 5f 43 4c 41 = ALG_CLA 1520: 53 53 5f 44 41 54 41 5f 45 4e 43 52 59 50 54 20 SS_DATA_ENCRYPT 1530: 7c 20 41 4c 47 5f 54 59 50 45 5f 42 4c 4f 43 4b | ALG_TYPE_BLOCK 1540: 20 7c 20 41 4c 47 5f 53 49 44 5f 41 45 53 2c 0d | ALG_SID_AES,. 1550: 0a 7d 0d 0a 0d 0a 65 6e 75 6d 20 7b 0d 0a 09 43 .}....enum {...C 1560: 52 59 50 54 5f 56 45 52 49 46 59 43 4f 4e 54 45 RYPT_VERIFYCONTE 1570: 58 54 20 3d 20 30 78 46 30 30 30 30 30 30 30 2c XT = 0xF0000000, 1580: 0d 0a 7d 0d 0a 0d 0a 65 6e 75 6d 20 7b 0d 0a 09 ..}....enum {... 1590: 43 52 59 50 54 5f 4e 45 57 4b 45 59 53 45 54 20 CRYPT_NEWKEYSET 15a0: 3d 20 38 2c 0d 0a 09 43 52 59 50 54 5f 44 45 4c = 8,...CRYPT_DEL 15b0: 45 54 45 4b 45 59 53 45 54 20 3d 20 31 36 2c 0d ETEKEYSET = 16,. 15c0: 0a 09 43 52 59 50 54 5f 4d 41 43 48 49 4e 45 5f ..CRYPT_MACHINE_ 15d0: 4b 45 59 53 45 54 20 3d 20 33 32 2c 0d 0a 09 43 KEYSET = 32,...C 15e0: 52 59 50 54 5f 53 49 4c 45 4e 54 20 3d 20 36 34 RYPT_SILENT = 64 15f0: 2c 0d 0a 7d 0d 0a 0d 0a 65 6e 75 6d 20 7b 0d 0a ,..}....enum {.. 1600: 09 43 52 59 50 54 5f 45 58 50 4f 52 54 41 42 4c .CRYPT_EXPORTABL 1610: 45 20 3d 20 31 2c 0d 0a 09 43 52 59 50 54 5f 55 E = 1,...CRYPT_U 1620: 53 45 52 5f 50 52 4f 54 45 43 54 45 44 20 3d 20 SER_PROTECTED = 1630: 32 2c 0d 0a 09 43 52 59 50 54 5f 43 52 45 41 54 2,...CRYPT_CREAT 1640: 45 5f 53 41 4c 54 20 3d 20 34 2c 0d 0a 09 43 52 E_SALT = 4,...CR 1650: 59 50 54 5f 55 50 44 41 54 45 5f 4b 45 59 20 3d YPT_UPDATE_KEY = 1660: 20 38 2c 0d 0a 7d 0d 0a 0d 0a 65 6e 75 6d 20 7b 8,..}....enum { 1670: 0d 0a 09 53 49 4d 50 4c 45 42 4c 4f 42 20 3d 20 ...SIMPLEBLOB = 1680: 31 2c 0d 0a 09 50 55 42 4c 49 43 4b 45 59 42 4c 1,...PUBLICKEYBL 1690: 4f 42 20 3d 20 36 2c 0d 0a 09 50 52 49 56 41 54 OB = 6,...PRIVAT 16a0: 45 4b 45 59 42 4c 4f 42 20 3d 20 37 2c 0d 0a 09 EKEYBLOB = 7,... 16b0: 50 4c 41 49 4e 54 45 58 54 4b 45 59 42 4c 4f 42 PLAINTEXTKEYBLOB 16c0: 20 3d 20 38 2c 0d 0a 09 4f 50 41 51 55 45 4b 45 = 8,...OPAQUEKE 16d0: 59 42 4c 4f 42 20 3d 20 39 2c 0d 0a 09 50 55 42 YBLOB = 9,...PUB 16e0: 4c 49 43 4b 45 59 42 4c 4f 42 45 58 20 3d 20 31 LICKEYBLOBEX = 1 16f0: 30 2c 0d 0a 09 53 59 4d 4d 45 54 52 49 43 57 52 0,...SYMMETRICWR 1700: 41 50 4b 45 59 42 4c 4f 42 20 3d 20 31 31 2c 0d APKEYBLOB = 11,. 1710: 0a 7d 0d 0a 0d 0a 65 6e 75 6d 20 7b 0d 0a 09 41 .}....enum {...A 1720: 54 5f 4b 45 59 45 58 43 48 41 4e 47 45 20 3d 20 T_KEYEXCHANGE = 1730: 31 2c 0d 0a 09 41 54 5f 53 49 47 4e 41 54 55 52 1,...AT_SIGNATUR 1740: 45 20 3d 20 32 2c 0d 0a 7d 0d 0a 0d 0a 65 6e 75 E = 2,..}....enu 1750: 6d 20 7b 0d 0a 09 43 52 59 50 54 5f 55 53 45 52 m {...CRYPT_USER 1760: 44 41 54 41 20 3d 20 31 2c 0d 0a 7d 0d 0a 0d 0a DATA = 1,..}.... 1770: 65 6e 75 6d 20 7b 0d 0a 09 50 4b 43 53 35 5f 50 enum {...PKCS5_P 1780: 41 44 44 49 4e 47 20 3d 20 31 2c 0d 0a 7d 0d 0a ADDING = 1,..}.. 1790: 0d 0a 65 6e 75 6d 20 7b 0d 0a 09 43 52 59 50 54 ..enum {...CRYPT 17a0: 5f 4d 4f 44 45 5f 43 42 43 20 3d 20 31 2c 0d 0a _MODE_CBC = 1,.. 17b0: 09 43 52 59 50 54 5f 4d 4f 44 45 5f 45 43 42 20 .CRYPT_MODE_ECB 17c0: 3d 20 32 2c 0d 0a 09 43 52 59 50 54 5f 4d 4f 44 = 2,...CRYPT_MOD 17d0: 45 5f 4f 46 42 20 3d 20 33 2c 0d 0a 09 43 52 59 E_OFB = 3,...CRY 17e0: 50 54 5f 4d 4f 44 45 5f 43 46 42 20 3d 20 34 2c PT_MODE_CFB = 4, 17f0: 0d 0a 09 43 52 59 50 54 5f 4d 4f 44 45 5f 43 54 ...CRYPT_MODE_CT 1800: 53 20 3d 20 35 2c 0d 0a 09 43 52 59 50 54 5f 4d S = 5,...CRYPT_M 1810: 4f 44 45 5f 43 42 43 49 20 3d 20 36 2c 0d 0a 09 ODE_CBCI = 6,... 1820: 43 52 59 50 54 5f 4d 4f 44 45 5f 43 46 42 50 20 CRYPT_MODE_CFBP 1830: 3d 20 37 2c 0d 0a 09 43 52 59 50 54 5f 4d 4f 44 = 7,...CRYPT_MOD 1840: 45 5f 4f 46 42 50 20 3d 20 38 2c 0d 0a 09 43 52 E_OFBP = 8,...CR 1850: 59 50 54 5f 4d 4f 44 45 5f 43 42 43 4f 46 4d 20 YPT_MODE_CBCOFM 1860: 3d 20 39 2c 0d 0a 09 43 52 59 50 54 5f 4d 4f 44 = 9,...CRYPT_MOD 1870: 45 5f 43 42 43 4f 46 4d 49 20 3d 20 31 30 2c 0d E_CBCOFMI = 10,. 1880: 0a 7d 0d 0a 0d 0a 65 6e 75 6d 20 7b 0d 0a 09 43 .}....enum {...C 1890: 52 59 50 54 5f 45 4e 43 52 59 50 54 20 3d 20 31 RYPT_ENCRYPT = 1 18a0: 2c 0d 0a 09 43 52 59 50 54 5f 44 45 43 52 59 50 ,...CRYPT_DECRYP 18b0: 54 20 3d 20 32 2c 0d 0a 09 43 52 59 50 54 5f 45 T = 2,...CRYPT_E 18c0: 58 50 4f 52 54 20 3d 20 34 2c 0d 0a 09 43 52 59 XPORT = 4,...CRY 18d0: 50 54 5f 52 45 41 44 20 3d 20 38 2c 0d 0a 09 43 PT_READ = 8,...C 18e0: 52 59 50 54 5f 57 52 49 54 45 20 3d 20 31 36 2c RYPT_WRITE = 16, 18f0: 0d 0a 09 43 52 59 50 54 5f 4d 41 43 20 3d 20 33 ...CRYPT_MAC = 3 1900: 32 2c 0d 0a 7d 0d 0a 0d 0a 65 6e 75 6d 20 7b 0d 2,..}....enum {. 1910: 0a 09 48 50 5f 41 4c 47 49 44 20 3d 20 31 2c 0d ..HP_ALGID = 1,. 1920: 0a 09 48 50 5f 48 41 53 48 56 41 4c 20 3d 20 32 ..HP_HASHVAL = 2 1930: 2c 0d 0a 09 48 50 5f 48 41 53 48 53 49 5a 45 20 ,...HP_HASHSIZE 1940: 3d 20 34 2c 0d 0a 09 48 50 5f 48 4d 41 43 5f 49 = 4,...HP_HMAC_I 1950: 4e 46 4f 20 3d 20 35 2c 0d 0a 7d 0d 0a 0d 0a 65 NFO = 5,..}....e 1960: 6e 75 6d 20 7b 0d 0a 09 43 52 59 50 54 5f 46 41 num {...CRYPT_FA 1970: 49 4c 45 44 20 3d 20 46 41 4c 53 45 2c 0d 0a 09 ILED = FALSE,... 1980: 43 52 59 50 54 5f 53 55 43 43 45 45 44 20 3d 20 CRYPT_SUCCEED = 1990: 54 52 55 45 2c 0d 0a 7d 0d 0a 0d 0a 62 6f 6f 6c TRUE,..}....bool 19a0: 20 52 43 52 59 50 54 5f 53 55 43 43 45 45 44 45 RCRYPT_SUCCEEDE 19b0: 44 28 42 4f 4f 4c 20 72 29 20 7b 20 72 65 74 75 D(BOOL r) { retu 19c0: 72 6e 20 72 3d 3d 43 52 59 50 54 5f 53 55 43 43 rn r==CRYPT_SUCC 19d0: 45 45 44 3b 20 7d 0d 0a 62 6f 6f 6c 20 52 43 52 EED; }..bool RCR 19e0: 59 50 54 5f 46 41 49 4c 45 44 28 42 4f 4f 4c 20 YPT_FAILED(BOOL 19f0: 72 29 20 7b 20 72 65 74 75 72 6e 20 72 3d 3d 43 r) { return r==C 1a00: 52 59 50 54 5f 46 41 49 4c 45 44 3b 20 7d 0d 0a RYPT_FAILED; }.. 1a10: 0d 0a 65 6e 75 6d 20 7b 0d 0a 09 50 50 5f 45 4e ..enum {...PP_EN 1a20: 55 4d 41 4c 47 53 20 3d 20 31 2c 0d 0a 09 50 50 UMALGS = 1,...PP 1a30: 5f 45 4e 55 4d 43 4f 4e 54 41 49 4e 45 52 53 20 _ENUMCONTAINERS 1a40: 3d 20 32 2c 0d 0a 09 50 50 5f 49 4d 50 54 59 50 = 2,...PP_IMPTYP 1a50: 45 20 3d 20 33 2c 0d 0a 09 50 50 5f 4e 41 4d 45 E = 3,...PP_NAME 1a60: 20 3d 20 34 2c 0d 0a 09 50 50 5f 56 45 52 53 49 = 4,...PP_VERSI 1a70: 4f 4e 20 3d 20 35 2c 0d 0a 09 50 50 5f 43 4f 4e ON = 5,...PP_CON 1a80: 54 41 49 4e 45 52 20 3d 20 36 2c 0d 0a 09 50 50 TAINER = 6,...PP 1a90: 5f 43 48 41 4e 47 45 5f 50 41 53 53 57 4f 52 44 _CHANGE_PASSWORD 1aa0: 09 3d 20 37 2c 0d 0a 09 50 50 5f 4b 45 59 53 45 .= 7,...PP_KEYSE 1ab0: 54 5f 53 45 43 5f 44 45 53 43 52 09 3d 20 38 2c T_SEC_DESCR.= 8, 1ac0: 0d 0a 09 50 50 5f 43 45 52 54 43 48 41 49 4e 09 ...PP_CERTCHAIN. 1ad0: 3d 20 39 2c 0d 0a 09 50 50 5f 4b 45 59 5f 54 59 = 9,...PP_KEY_TY 1ae0: 50 45 5f 53 55 42 54 59 50 45 09 3d 20 31 30 2c PE_SUBTYPE.= 10, 1af0: 0d 0a 09 50 50 5f 50 52 4f 56 54 59 50 45 09 3d ...PP_PROVTYPE.= 1b00: 20 31 36 2c 0d 0a 09 50 50 5f 4b 45 59 53 54 4f 16,...PP_KEYSTO 1b10: 52 41 47 45 09 3d 20 31 37 2c 0d 0a 09 50 50 5f RAGE.= 17,...PP_ 1b20: 41 50 50 4c 49 5f 43 45 52 54 09 3d 20 31 38 2c APPLI_CERT.= 18, 1b30: 0d 0a 09 50 50 5f 53 59 4d 5f 4b 45 59 53 49 5a ...PP_SYM_KEYSIZ 1b40: 45 09 3d 20 31 39 2c 0d 0a 09 50 50 5f 53 45 53 E.= 19,...PP_SES 1b50: 53 49 4f 4e 5f 4b 45 59 53 49 5a 45 09 3d 20 32 SION_KEYSIZE.= 2 1b60: 30 2c 0d 0a 09 50 50 5f 55 49 5f 50 52 4f 4d 50 0,...PP_UI_PROMP 1b70: 54 09 3d 20 32 31 2c 0d 0a 09 50 50 5f 45 4e 55 T.= 21,...PP_ENU 1b80: 4d 41 4c 47 53 5f 45 58 09 3d 20 32 32 2c 0d 0a MALGS_EX.= 22,.. 1b90: 09 50 50 5f 45 4e 55 4d 4d 41 4e 44 52 4f 4f 54 .PP_ENUMMANDROOT 1ba0: 53 20 3d 20 32 35 2c 0d 0a 09 50 50 5f 45 4e 55 S = 25,...PP_ENU 1bb0: 4d 45 4c 45 43 54 52 4f 4f 54 53 20 3d 20 32 36 MELECTROOTS = 26 1bc0: 2c 0d 0a 09 50 50 5f 4b 45 59 53 45 54 5f 54 59 ,...PP_KEYSET_TY 1bd0: 50 45 20 3d 20 32 37 2c 0d 0a 09 50 50 5f 41 44 PE = 27,...PP_AD 1be0: 4d 49 4e 5f 50 49 4e 20 3d 20 33 31 2c 0d 0a 09 MIN_PIN = 31,... 1bf0: 50 50 5f 4b 45 59 45 58 43 48 41 4e 47 45 5f 50 PP_KEYEXCHANGE_P 1c00: 49 4e 20 3d 20 33 32 2c 0d 0a 09 50 50 5f 53 49 IN = 32,...PP_SI 1c10: 47 4e 41 54 55 52 45 5f 50 49 4e 20 3d 20 33 33 GNATURE_PIN = 33 1c20: 2c 0d 0a 09 50 50 5f 53 49 47 5f 4b 45 59 53 49 ,...PP_SIG_KEYSI 1c30: 5a 45 5f 49 4e 43 20 3d 20 33 34 2c 0d 0a 09 50 ZE_INC = 34,...P 1c40: 50 5f 4b 45 59 58 5f 4b 45 59 53 49 5a 45 5f 49 P_KEYX_KEYSIZE_I 1c50: 4e 43 20 3d 20 33 35 2c 0d 0a 09 50 50 5f 55 4e NC = 35,...PP_UN 1c60: 49 51 55 45 5f 43 4f 4e 54 41 49 4e 45 52 20 3d IQUE_CONTAINER = 1c70: 20 33 36 2c 0d 0a 09 50 50 5f 53 47 43 5f 49 4e 36,...PP_SGC_IN 1c80: 46 4f 20 3d 20 33 37 2c 0d 0a 09 50 50 5f 55 53 FO = 37,...PP_US 1c90: 45 5f 48 41 52 44 57 41 52 45 5f 52 4e 47 20 3d E_HARDWARE_RNG = 1ca0: 20 33 38 2c 0d 0a 09 50 50 5f 4b 45 59 53 50 45 38,...PP_KEYSPE 1cb0: 43 20 3d 20 33 39 2c 0d 0a 09 50 50 5f 45 4e 55 C = 39,...PP_ENU 1cc0: 4d 45 58 5f 53 49 47 4e 49 4e 47 5f 50 52 4f 54 MEX_SIGNING_PROT 1cd0: 20 3d 20 34 30 2c 0d 0a 7d 0d 0a 0d 0a 65 6e 75 = 40,..}....enu 1ce0: 6d 20 7b 0d 0a 09 43 52 59 50 54 5f 46 49 52 53 m {...CRYPT_FIRS 1cf0: 54 20 3d 20 31 2c 0d 0a 09 43 52 59 50 54 5f 4e T = 1,...CRYPT_N 1d00: 45 58 54 20 3d 20 32 2c 0d 0a 7d 0d 0a 0d 0a 65 EXT = 2,..}....e 1d10: 6e 75 6d 20 7b 0d 0a 09 43 52 59 50 54 5f 49 4d num {...CRYPT_IM 1d20: 50 4c 5f 48 41 52 44 57 41 52 45 20 3d 20 31 2c PL_HARDWARE = 1, 1d30: 0d 0a 09 43 52 59 50 54 5f 49 4d 50 4c 5f 53 4f ...CRYPT_IMPL_SO 1d40: 46 54 57 41 52 45 20 3d 20 32 2c 0d 0a 09 43 52 FTWARE = 2,...CR 1d50: 59 50 54 5f 49 4d 50 4c 5f 4d 49 58 45 44 20 3d YPT_IMPL_MIXED = 1d60: 20 33 2c 0d 0a 09 43 52 59 50 54 5f 49 4d 50 4c 3,...CRYPT_IMPL 1d70: 5f 55 4e 4b 4e 4f 57 4e 20 3d 20 34 2c 0d 0a 7d _UNKNOWN = 4,..} 1d80: 0d 0a 0d 0a 65 6e 75 6d 20 7b 0d 0a 09 50 52 4f ....enum {...PRO 1d90: 56 5f 52 53 41 5f 46 55 4c 4c 20 3d 20 31 2c 0d V_RSA_FULL = 1,. 1da0: 0a 09 50 52 4f 56 5f 52 53 41 5f 53 49 47 20 3d ..PROV_RSA_SIG = 1db0: 20 32 2c 0d 0a 09 50 52 4f 56 5f 44 53 53 20 3d 2,...PROV_DSS = 1dc0: 20 33 2c 0d 0a 09 50 52 4f 56 5f 46 4f 52 54 45 3,...PROV_FORTE 1dd0: 5a 5a 41 20 3d 20 34 2c 0d 0a 09 50 52 4f 56 5f ZZA = 4,...PROV_ 1de0: 4d 53 5f 4d 41 49 4c 20 3d 20 35 2c 0d 0a 09 50 MS_MAIL = 5,...P 1df0: 52 4f 56 5f 53 53 4c 20 3d 20 36 2c 0d 0a 09 50 ROV_SSL = 6,...P 1e00: 52 4f 56 5f 53 54 54 5f 4d 45 52 20 3d 20 37 2c ROV_STT_MER = 7, 1e10: 0d 0a 09 50 52 4f 56 5f 53 54 54 5f 41 43 51 20 ...PROV_STT_ACQ 1e20: 3d 20 38 2c 0d 0a 09 50 52 4f 56 5f 53 54 54 5f = 8,...PROV_STT_ 1e30: 42 52 4e 44 20 3d 20 39 2c 0d 0a 09 50 52 4f 56 BRND = 9,...PROV 1e40: 5f 53 54 54 5f 52 4f 4f 54 20 3d 20 31 30 2c 0d _STT_ROOT = 10,. 1e50: 0a 09 50 52 4f 56 5f 53 54 54 5f 49 53 53 20 3d ..PROV_STT_ISS = 1e60: 20 31 31 2c 0d 0a 09 50 52 4f 56 5f 52 53 41 5f 11,...PROV_RSA_ 1e70: 53 43 48 41 4e 4e 45 4c 20 3d 20 31 32 2c 0d 0a SCHANNEL = 12,.. 1e80: 09 50 52 4f 56 5f 44 53 53 5f 44 48 20 3d 20 31 .PROV_DSS_DH = 1 1e90: 33 2c 0d 0a 09 50 52 4f 56 5f 45 43 5f 45 43 44 3,...PROV_EC_ECD 1ea0: 53 41 5f 53 49 47 20 3d 20 31 34 2c 0d 0a 09 50 SA_SIG = 14,...P 1eb0: 52 4f 56 5f 45 43 5f 45 43 4e 52 41 5f 53 49 47 ROV_EC_ECNRA_SIG 1ec0: 20 3d 20 31 35 2c 0d 0a 09 50 52 4f 56 5f 45 43 = 15,...PROV_EC 1ed0: 5f 45 43 44 53 41 5f 46 55 4c 4c 20 3d 20 31 36 _ECDSA_FULL = 16 1ee0: 2c 0d 0a 09 50 52 4f 56 5f 45 43 5f 45 43 4e 52 ,...PROV_EC_ECNR 1ef0: 41 5f 46 55 4c 4c 20 3d 20 31 37 2c 0d 0a 09 50 A_FULL = 17,...P 1f00: 52 4f 56 5f 44 48 5f 53 43 48 41 4e 4e 45 4c 20 ROV_DH_SCHANNEL 1f10: 3d 20 31 38 2c 0d 0a 09 50 52 4f 56 5f 53 50 59 = 18,...PROV_SPY 1f20: 52 55 53 5f 4c 59 4e 4b 53 20 3d 20 32 30 2c 0d RUS_LYNKS = 20,. 1f30: 0a 09 50 52 4f 56 5f 52 4e 47 20 3d 20 32 31 2c ..PROV_RNG = 21, 1f40: 0d 0a 09 50 52 4f 56 5f 49 4e 54 45 4c 5f 53 45 ...PROV_INTEL_SE 1f50: 43 20 3d 20 32 32 2c 0d 0a 09 50 52 4f 56 5f 52 C = 22,...PROV_R 1f60: 53 41 5f 41 45 53 20 3d 20 32 34 2c 0d 0a 09 4d SA_AES = 24,...M 1f70: 41 58 55 49 44 4c 45 4e 20 3d 20 36 34 2c 0d 0a AXUIDLEN = 64,.. 1f80: 7d 0d 0a 0d 0a 65 6e 75 6d 20 7b 0d 0a 09 43 55 }....enum {...CU 1f90: 52 5f 42 4c 4f 42 5f 56 45 52 53 49 4f 4e 20 3d R_BLOB_VERSION = 1fa0: 20 32 2c 0d 0a 7d 0d 0a 0d 0a 65 6e 75 6d 20 7b 2,..}....enum { 1fb0: 0d 0a 09 58 35 30 39 5f 41 53 4e 5f 45 4e 43 4f ...X509_ASN_ENCO 1fc0: 44 49 4e 47 20 3d 20 31 2c 0d 0a 09 50 4b 43 53 DING = 1,...PKCS 1fd0: 5f 37 5f 41 53 4e 5f 45 4e 43 4f 44 49 4e 47 20 _7_ASN_ENCODING 1fe0: 20 3d 20 36 35 35 33 36 2c 0d 0a 7d 0d 0a 0d 0a = 65536,..}.... 1ff0: 65 6e 75 6d 20 7b 0d 0a 09 43 45 52 54 5f 56 31 enum {...CERT_V1 2000: 20 3d 20 30 2c 0d 0a 09 43 45 52 54 5f 56 32 20 = 0,...CERT_V2 2010: 3d 20 31 2c 0d 0a 09 43 45 52 54 5f 56 33 20 3d = 1,...CERT_V3 = 2020: 20 32 2c 0d 0a 7d 0d 0a 0d 0a 65 6e 75 6d 20 7b 2,..}....enum { 2030: 0d 0a 09 43 45 52 54 5f 45 5f 43 48 41 49 4e 49 ...CERT_E_CHAINI 2040: 4e 47 20 3d 20 28 2d 32 31 34 36 37 36 32 34 38 NG = (-214676248 2050: 36 29 2c 0d 0a 09 43 45 52 54 5f 45 5f 43 4e 5f 6),...CERT_E_CN_ 2060: 4e 4f 5f 4d 41 54 43 48 20 3d 20 28 2d 32 31 34 NO_MATCH = (-214 2070: 36 37 36 32 34 38 31 29 2c 0d 0a 09 43 45 52 54 6762481),...CERT 2080: 5f 45 5f 45 58 50 49 52 45 44 20 3d 20 28 2d 32 _E_EXPIRED = (-2 2090: 31 34 36 37 36 32 34 39 35 29 2c 0d 0a 09 43 45 146762495),...CE 20a0: 52 54 5f 45 5f 50 55 52 50 4f 53 45 20 3d 20 28 RT_E_PURPOSE = ( 20b0: 2d 32 31 34 36 37 36 32 34 39 30 29 2c 0d 0a 09 -2146762490),... 20c0: 43 45 52 54 5f 45 5f 52 45 56 4f 43 41 54 49 4f CERT_E_REVOCATIO 20d0: 4e 5f 46 41 49 4c 55 52 45 20 3d 20 28 2d 32 31 N_FAILURE = (-21 20e0: 34 36 37 36 32 34 38 32 29 2c 0d 0a 09 43 45 52 46762482),...CER 20f0: 54 5f 45 5f 52 45 56 4f 4b 45 44 20 3d 20 28 2d T_E_REVOKED = (- 2100: 32 31 34 36 37 36 32 34 38 34 29 2c 0d 0a 09 43 2146762484),...C 2110: 45 52 54 5f 45 5f 52 4f 4c 45 20 3d 20 28 2d 32 ERT_E_ROLE = (-2 2120: 31 34 36 37 36 32 34 39 33 29 2c 0d 0a 09 43 45 146762493),...CE 2130: 52 54 5f 45 5f 55 4e 54 52 55 53 54 45 44 52 4f RT_E_UNTRUSTEDRO 2140: 4f 54 20 3d 20 28 2d 32 31 34 36 37 36 32 34 38 OT = (-214676248 2150: 37 29 2c 0d 0a 09 43 45 52 54 5f 45 5f 55 4e 54 7),...CERT_E_UNT 2160: 52 55 53 54 45 44 54 45 53 54 52 4f 4f 54 20 3d RUSTEDTESTROOT = 2170: 20 28 2d 32 31 34 36 37 36 32 34 38 33 29 2c 0d (-2146762483),. 2180: 0a 09 43 45 52 54 5f 45 5f 56 41 4c 49 44 49 54 ..CERT_E_VALIDIT 2190: 59 50 45 52 49 4f 44 4e 45 53 54 49 4e 47 20 3d YPERIODNESTING = 21a0: 20 28 2d 32 31 34 36 37 36 32 34 39 34 29 2c 0d (-2146762494),. 21b0: 0a 09 43 45 52 54 5f 45 5f 57 52 4f 4e 47 5f 55 ..CERT_E_WRONG_U 21c0: 53 41 47 45 20 3d 20 28 2d 32 31 34 36 37 36 32 SAGE = (-2146762 21d0: 34 38 30 29 2c 0d 0a 09 43 45 52 54 5f 45 5f 50 480),...CERT_E_P 21e0: 41 54 48 4c 45 4e 43 4f 4e 53 54 20 3d 20 28 2d ATHLENCONST = (- 21f0: 32 31 34 36 37 36 32 34 39 32 29 2c 0d 0a 09 43 2146762492),...C 2200: 45 52 54 5f 45 5f 43 52 49 54 49 43 41 4c 20 3d ERT_E_CRITICAL = 2210: 20 28 2d 32 31 34 36 37 36 32 34 39 31 29 2c 0d (-2146762491),. 2220: 0a 09 43 45 52 54 5f 45 5f 49 53 53 55 45 52 43 ..CERT_E_ISSUERC 2230: 48 41 49 4e 49 4e 47 20 3d 20 28 2d 32 31 34 36 HAINING = (-2146 2240: 37 36 32 34 38 39 29 2c 0d 0a 09 43 45 52 54 5f 762489),...CERT_ 2250: 45 5f 4d 41 4c 46 4f 52 4d 45 44 20 3d 20 28 2d E_MALFORMED = (- 2260: 32 31 34 36 37 36 32 34 38 38 29 2c 0d 0a 09 43 2146762488),...C 2270: 52 59 50 54 5f 45 5f 52 45 56 4f 43 41 54 49 4f RYPT_E_REVOCATIO 2280: 4e 5f 4f 46 46 4c 49 4e 45 20 3d 20 28 2d 32 31 N_OFFLINE = (-21 2290: 34 36 38 38 35 36 31 33 29 2c 0d 0a 09 43 52 59 46885613),...CRY 22a0: 50 54 5f 45 5f 52 45 56 4f 4b 45 44 20 3d 20 28 PT_E_REVOKED = ( 22b0: 2d 32 31 34 36 38 38 35 36 31 36 29 2c 0d 0a 09 -2146885616),... 22c0: 54 52 55 53 54 5f 45 5f 42 41 53 49 43 5f 43 4f TRUST_E_BASIC_CO 22d0: 4e 53 54 52 41 49 4e 54 53 20 3d 20 28 2d 32 31 NSTRAINTS = (-21 22e0: 34 36 38 36 39 32 32 33 29 2c 0d 0a 09 54 52 55 46869223),...TRU 22f0: 53 54 5f 45 5f 43 45 52 54 5f 53 49 47 4e 41 54 ST_E_CERT_SIGNAT 2300: 55 52 45 20 3d 20 28 2d 32 31 34 36 38 36 39 32 URE = (-21468692 2310: 34 34 29 2c 0d 0a 09 54 52 55 53 54 5f 45 5f 46 44),...TRUST_E_F 2320: 41 49 4c 20 3d 20 28 2d 32 31 34 36 37 36 32 34 AIL = (-21467624 2330: 38 35 29 2c 0d 0a 7d 0d 0a 0d 0a 65 6e 75 6d 20 85),..}....enum 2340: 7b 0d 0a 09 43 45 52 54 5f 54 52 55 53 54 5f 4e {...CERT_TRUST_N 2350: 4f 5f 45 52 52 4f 52 20 3d 20 30 2c 0d 0a 09 43 O_ERROR = 0,...C 2360: 45 52 54 5f 54 52 55 53 54 5f 49 53 5f 4e 4f 54 ERT_TRUST_IS_NOT 2370: 5f 54 49 4d 45 5f 56 41 4c 49 44 20 3d 20 31 2c _TIME_VALID = 1, 2380: 0d 0a 09 43 45 52 54 5f 54 52 55 53 54 5f 49 53 ...CERT_TRUST_IS 2390: 5f 4e 4f 54 5f 54 49 4d 45 5f 4e 45 53 54 45 44 _NOT_TIME_NESTED 23a0: 20 3d 20 32 2c 0d 0a 09 43 45 52 54 5f 54 52 55 = 2,...CERT_TRU 23b0: 53 54 5f 49 53 5f 52 45 56 4f 4b 45 44 20 3d 20 ST_IS_REVOKED = 23c0: 34 2c 0d 0a 09 43 45 52 54 5f 54 52 55 53 54 5f 4,...CERT_TRUST_ 23d0: 49 53 5f 4e 4f 54 5f 53 49 47 4e 41 54 55 52 45 IS_NOT_SIGNATURE 23e0: 5f 56 41 4c 49 44 20 3d 20 38 2c 0d 0a 09 43 45 _VALID = 8,...CE 23f0: 52 54 5f 54 52 55 53 54 5f 49 53 5f 4e 4f 54 5f RT_TRUST_IS_NOT_ 2400: 56 41 4c 49 44 5f 46 4f 52 5f 55 53 41 47 45 20 VALID_FOR_USAGE 2410: 3d 20 31 36 2c 0d 0a 09 43 45 52 54 5f 54 52 55 = 16,...CERT_TRU 2420: 53 54 5f 49 53 5f 55 4e 54 52 55 53 54 45 44 5f ST_IS_UNTRUSTED_ 2430: 52 4f 4f 54 20 3d 20 33 32 2c 0d 0a 09 43 45 52 ROOT = 32,...CER 2440: 54 5f 54 52 55 53 54 5f 52 45 56 4f 43 41 54 49 T_TRUST_REVOCATI 2450: 4f 4e 5f 53 54 41 54 55 53 5f 55 4e 4b 4e 4f 57 ON_STATUS_UNKNOW 2460: 4e 20 3d 20 36 34 2c 0d 0a 09 43 45 52 54 5f 54 N = 64,...CERT_T 2470: 52 55 53 54 5f 49 53 5f 43 59 43 4c 49 43 20 3d RUST_IS_CYCLIC = 2480: 20 31 32 38 2c 0d 0a 09 43 45 52 54 5f 54 52 55 128,...CERT_TRU 2490: 53 54 5f 49 53 5f 50 41 52 54 49 41 4c 5f 43 48 ST_IS_PARTIAL_CH 24a0: 41 49 4e 20 3d 20 36 35 35 33 36 2c 0d 0a 09 43 AIN = 65536,...C 24b0: 45 52 54 5f 54 52 55 53 54 5f 43 54 4c 5f 49 53 ERT_TRUST_CTL_IS 24c0: 5f 4e 4f 54 5f 54 49 4d 45 5f 56 41 4c 49 44 20 _NOT_TIME_VALID 24d0: 3d 20 31 33 31 30 37 32 2c 0d 0a 09 43 45 52 54 = 131072,...CERT 24e0: 5f 54 52 55 53 54 5f 43 54 4c 5f 49 53 5f 4e 4f _TRUST_CTL_IS_NO 24f0: 54 5f 53 49 47 4e 41 54 55 52 45 5f 56 41 4c 49 T_SIGNATURE_VALI 2500: 44 20 3d 20 32 36 32 31 34 34 2c 0d 0a 09 43 45 D = 262144,...CE 2510: 52 54 5f 54 52 55 53 54 5f 43 54 4c 5f 49 53 5f RT_TRUST_CTL_IS_ 2520: 4e 4f 54 5f 56 41 4c 49 44 5f 46 4f 52 5f 55 53 NOT_VALID_FOR_US 2530: 41 47 45 20 3d 20 35 32 34 32 38 38 2c 0d 0a 7d AGE = 524288,..} 2540: 0d 0a 0d 0a 65 6e 75 6d 20 7b 0d 0a 09 43 45 52 ....enum {...CER 2550: 54 5f 54 52 55 53 54 5f 48 41 53 5f 45 58 41 43 T_TRUST_HAS_EXAC 2560: 54 5f 4d 41 54 43 48 5f 49 53 53 55 45 52 20 3d T_MATCH_ISSUER = 2570: 20 31 2c 0d 0a 09 43 45 52 54 5f 54 52 55 53 54 1,...CERT_TRUST 2580: 5f 48 41 53 5f 4b 45 59 5f 4d 41 54 43 48 5f 49 _HAS_KEY_MATCH_I 2590: 53 53 55 45 52 20 3d 20 32 2c 0d 0a 09 43 45 52 SSUER = 2,...CER 25a0: 54 5f 54 52 55 53 54 5f 48 41 53 5f 4e 41 4d 45 T_TRUST_HAS_NAME 25b0: 5f 4d 41 54 43 48 5f 49 53 53 55 45 52 20 3d 20 _MATCH_ISSUER = 25c0: 34 2c 0d 0a 09 43 45 52 54 5f 54 52 55 53 54 5f 4,...CERT_TRUST_ 25d0: 49 53 5f 53 45 4c 46 5f 53 49 47 4e 45 44 20 3d IS_SELF_SIGNED = 25e0: 20 38 2c 0d 0a 09 43 45 52 54 5f 54 52 55 53 54 8,...CERT_TRUST 25f0: 5f 49 53 5f 43 4f 4d 50 4c 45 58 5f 43 48 41 49 _IS_COMPLEX_CHAI 2600: 4e 20 3d 20 36 35 35 33 36 2c 0d 0a 7d 0d 0a 0d N = 65536,..}... 2610: 0a 65 6e 75 6d 20 7b 0d 0a 09 43 45 52 54 5f 43 .enum {...CERT_C 2620: 48 41 49 4e 5f 50 4f 4c 49 43 59 5f 42 41 53 45 HAIN_POLICY_BASE 2630: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 = 2640: 63 61 73 74 28 4c 50 43 53 54 52 29 20 31 2c 0d cast(LPCSTR) 1,. 2650: 0a 09 43 45 52 54 5f 43 48 41 49 4e 5f 50 4f 4c ..CERT_CHAIN_POL 2660: 49 43 59 5f 41 55 54 48 45 4e 54 49 43 4f 44 45 ICY_AUTHENTICODE 2670: 20 20 20 20 20 20 3d 20 63 61 73 74 28 4c 50 43 = cast(LPC 2680: 53 54 52 29 20 32 2c 0d 0a 09 43 45 52 54 5f 43 STR) 2,...CERT_C 2690: 48 41 49 4e 5f 50 4f 4c 49 43 59 5f 41 55 54 48 HAIN_POLICY_AUTH 26a0: 45 4e 54 49 43 4f 44 45 5f 54 53 20 20 20 3d 20 ENTICODE_TS = 26b0: 63 61 73 74 28 4c 50 43 53 54 52 29 20 33 2c 0d cast(LPCSTR) 3,. 26c0: 0a 09 43 45 52 54 5f 43 48 41 49 4e 5f 50 4f 4c ..CERT_CHAIN_POL 26d0: 49 43 59 5f 53 53 4c 20 20 20 20 20 20 20 20 20 ICY_SSL 26e0: 20 20 20 20 20 20 3d 20 63 61 73 74 28 4c 50 43 = cast(LPC 26f0: 53 54 52 29 20 34 2c 0d 0a 09 43 45 52 54 5f 43 STR) 4,...CERT_C 2700: 48 41 49 4e 5f 50 4f 4c 49 43 59 5f 42 41 53 49 HAIN_POLICY_BASI 2710: 43 5f 43 4f 4e 53 54 52 41 49 4e 54 53 20 3d 20 C_CONSTRAINTS = 2720: 63 61 73 74 28 4c 50 43 53 54 52 29 20 35 2c 0d cast(LPCSTR) 5,. 2730: 0a 09 43 45 52 54 5f 43 48 41 49 4e 5f 50 4f 4c ..CERT_CHAIN_POL 2740: 49 43 59 5f 4e 54 5f 41 55 54 48 20 20 20 20 20 ICY_NT_AUTH 2750: 20 20 20 20 20 20 3d 20 63 61 73 74 28 4c 50 43 = cast(LPC 2760: 53 54 52 29 20 36 2c 0d 0a 7d 0d 0a 0d 0a 65 6e STR) 6,..}....en 2770: 75 6d 20 7b 0d 0a 09 55 53 41 47 45 5f 4d 41 54 um {...USAGE_MAT 2780: 43 48 5f 54 59 50 45 5f 41 4e 44 20 3d 20 30 2c CH_TYPE_AND = 0, 2790: 0d 0a 09 55 53 41 47 45 5f 4d 41 54 43 48 5f 54 ...USAGE_MATCH_T 27a0: 59 50 45 5f 4f 52 20 3d 20 31 2c 0d 0a 7d 0d 0a YPE_OR = 1,..}.. 27b0: 0d 0a 65 6e 75 6d 20 7b 0d 0a 09 43 45 52 54 5f ..enum {...CERT_ 27c0: 53 49 4d 50 4c 45 5f 4e 41 4d 45 5f 53 54 52 20 SIMPLE_NAME_STR 27d0: 3d 20 31 2c 0d 0a 09 43 45 52 54 5f 4f 49 44 5f = 1,...CERT_OID_ 27e0: 4e 41 4d 45 5f 53 54 52 20 3d 20 32 2c 0d 0a 09 NAME_STR = 2,... 27f0: 43 45 52 54 5f 58 35 30 30 5f 4e 41 4d 45 5f 53 CERT_X500_NAME_S 2800: 54 52 20 3d 20 33 2c 0d 0a 7d 0d 0a 65 6e 75 6d TR = 3,..}..enum 2810: 20 7b 0d 0a 09 43 45 52 54 5f 4e 41 4d 45 5f 53 {...CERT_NAME_S 2820: 54 52 5f 53 45 4d 49 43 4f 4c 4f 4e 5f 46 4c 41 TR_SEMICOLON_FLA 2830: 47 20 3d 20 31 30 37 33 37 34 31 38 32 34 2c 0d G = 1073741824,. 2840: 0a 09 43 45 52 54 5f 4e 41 4d 45 5f 53 54 52 5f ..CERT_NAME_STR_ 2850: 43 52 4c 46 5f 46 4c 41 47 20 3d 20 31 33 34 32 CRLF_FLAG = 1342 2860: 31 37 37 32 38 2c 0d 0a 09 43 45 52 54 5f 4e 41 17728,...CERT_NA 2870: 4d 45 5f 53 54 52 5f 4e 4f 5f 50 4c 55 53 5f 46 ME_STR_NO_PLUS_F 2880: 4c 41 47 20 3d 20 35 33 36 38 37 30 39 31 32 2c LAG = 536870912, 2890: 0d 0a 09 43 45 52 54 5f 4e 41 4d 45 5f 53 54 52 ...CERT_NAME_STR 28a0: 5f 4e 4f 5f 51 55 4f 54 49 4e 47 5f 46 4c 41 47 _NO_QUOTING_FLAG 28b0: 20 3d 20 32 36 38 34 33 35 34 35 36 2c 0d 0a 09 = 268435456,... 28c0: 43 45 52 54 5f 4e 41 4d 45 5f 53 54 52 5f 52 45 CERT_NAME_STR_RE 28d0: 56 45 52 53 45 5f 46 4c 41 47 20 3d 20 33 33 35 VERSE_FLAG = 335 28e0: 35 34 34 33 32 2c 0d 0a 09 43 45 52 54 5f 4e 41 54432,...CERT_NA 28f0: 4d 45 5f 53 54 52 5f 45 4e 41 42 4c 45 5f 54 36 ME_STR_ENABLE_T6 2900: 31 5f 55 4e 49 43 4f 44 45 5f 46 4c 41 47 20 3d 1_UNICODE_FLAG = 2910: 20 31 33 31 30 37 32 2c 0d 0a 7d 0d 0a 0d 0a 65 131072,..}....e 2920: 6e 75 6d 20 7b 0d 0a 09 43 45 52 54 5f 46 49 4e num {...CERT_FIN 2930: 44 5f 41 4e 59 20 3d 20 30 2c 0d 0a 09 43 45 52 D_ANY = 0,...CER 2940: 54 5f 46 49 4e 44 5f 43 45 52 54 5f 49 44 20 3d T_FIND_CERT_ID = 2950: 20 31 30 34 38 35 37 36 2c 0d 0a 09 43 45 52 54 1048576,...CERT 2960: 5f 46 49 4e 44 5f 43 54 4c 5f 55 53 41 47 45 20 _FIND_CTL_USAGE 2970: 3d 20 36 35 35 33 36 30 2c 0d 0a 09 43 45 52 54 = 655360,...CERT 2980: 5f 46 49 4e 44 5f 45 4e 48 4b 45 59 5f 55 53 41 _FIND_ENHKEY_USA 2990: 47 45 20 3d 20 36 35 35 33 36 30 2c 0d 0a 09 43 GE = 655360,...C 29a0: 45 52 54 5f 46 49 4e 44 5f 45 58 49 53 54 49 4e ERT_FIND_EXISTIN 29b0: 47 20 3d 20 38 35 31 39 36 38 2c 0d 0a 09 43 45 G = 851968,...CE 29c0: 52 54 5f 46 49 4e 44 5f 48 41 53 48 20 3d 20 36 RT_FIND_HASH = 6 29d0: 35 35 33 36 2c 0d 0a 09 43 45 52 54 5f 46 49 4e 5536,...CERT_FIN 29e0: 44 5f 49 53 53 55 45 52 5f 41 54 54 52 20 3d 20 D_ISSUER_ATTR = 29f0: 31 39 36 36 31 32 2c 0d 0a 09 43 45 52 54 5f 46 196612,...CERT_F 2a00: 49 4e 44 5f 49 53 53 55 45 52 5f 4e 41 4d 45 20 IND_ISSUER_NAME 2a10: 3d 20 31 33 31 30 37 36 2c 0d 0a 09 43 45 52 54 = 131076,...CERT 2a20: 5f 46 49 4e 44 5f 49 53 53 55 45 52 5f 4f 46 20 _FIND_ISSUER_OF 2a30: 3d 20 37 38 36 34 33 32 2c 0d 0a 09 43 45 52 54 = 786432,...CERT 2a40: 5f 46 49 4e 44 5f 4b 45 59 5f 49 44 45 4e 54 49 _FIND_KEY_IDENTI 2a50: 46 49 45 52 20 3d 20 39 38 33 30 34 30 2c 0d 0a FIER = 983040,.. 2a60: 09 43 45 52 54 5f 46 49 4e 44 5f 4b 45 59 5f 53 .CERT_FIND_KEY_S 2a70: 50 45 43 20 3d 20 35 38 39 38 32 34 2c 0d 0a 09 PEC = 589824,... 2a80: 43 45 52 54 5f 46 49 4e 44 5f 4d 44 35 5f 48 41 CERT_FIND_MD5_HA 2a90: 53 48 20 3d 20 32 36 32 31 34 34 2c 0d 0a 09 43 SH = 262144,...C 2aa0: 45 52 54 5f 46 49 4e 44 5f 50 52 4f 50 45 52 54 ERT_FIND_PROPERT 2ab0: 59 20 3d 20 33 32 37 36 38 30 2c 0d 0a 09 43 45 Y = 327680,...CE 2ac0: 52 54 5f 46 49 4e 44 5f 50 55 42 4c 49 43 5f 4b RT_FIND_PUBLIC_K 2ad0: 45 59 20 3d 20 33 39 33 32 31 36 2c 0d 0a 09 43 EY = 393216,...C 2ae0: 45 52 54 5f 46 49 4e 44 5f 53 48 41 31 5f 48 41 ERT_FIND_SHA1_HA 2af0: 53 48 20 3d 20 36 35 35 33 36 2c 0d 0a 09 43 45 SH = 65536,...CE 2b00: 52 54 5f 46 49 4e 44 5f 53 49 47 4e 41 54 55 52 RT_FIND_SIGNATUR 2b10: 45 5f 48 41 53 48 20 3d 20 39 31 37 35 30 34 2c E_HASH = 917504, 2b20: 0d 0a 09 43 45 52 54 5f 46 49 4e 44 5f 53 55 42 ...CERT_FIND_SUB 2b30: 4a 45 43 54 5f 41 54 54 52 20 3d 20 31 39 36 36 JECT_ATTR = 1966 2b40: 31 35 2c 0d 0a 09 43 45 52 54 5f 46 49 4e 44 5f 15,...CERT_FIND_ 2b50: 53 55 42 4a 45 43 54 5f 43 45 52 54 20 3d 20 37 SUBJECT_CERT = 7 2b60: 32 30 38 39 36 2c 0d 0a 09 43 45 52 54 5f 46 49 20896,...CERT_FI 2b70: 4e 44 5f 53 55 42 4a 45 43 54 5f 4e 41 4d 45 20 ND_SUBJECT_NAME 2b80: 3d 20 31 33 31 30 37 39 2c 0d 0a 09 43 45 52 54 = 131079,...CERT 2b90: 5f 46 49 4e 44 5f 53 55 42 4a 45 43 54 5f 53 54 _FIND_SUBJECT_ST 2ba0: 52 5f 41 20 3d 20 34 35 38 37 35 39 2c 0d 0a 09 R_A = 458759,... 2bb0: 43 45 52 54 5f 46 49 4e 44 5f 53 55 42 4a 45 43 CERT_FIND_SUBJEC 2bc0: 54 5f 53 54 52 5f 57 20 3d 20 35 32 34 32 39 35 T_STR_W = 524295 2bd0: 2c 0d 0a 09 43 45 52 54 5f 46 49 4e 44 5f 49 53 ,...CERT_FIND_IS 2be0: 53 55 45 52 5f 53 54 52 5f 41 20 3d 20 34 35 38 SUER_STR_A = 458 2bf0: 37 35 36 2c 0d 0a 09 43 45 52 54 5f 46 49 4e 44 756,...CERT_FIND 2c00: 5f 49 53 53 55 45 52 5f 53 54 52 5f 57 20 3d 20 _ISSUER_STR_W = 2c10: 35 32 34 32 39 32 2c 0d 0a 7d 0d 0a 0d 0a 65 6e 524292,..}....en 2c20: 75 6d 20 7b 0d 0a 09 43 45 52 54 5f 46 49 4e 44 um {...CERT_FIND 2c30: 5f 4f 52 5f 45 4e 48 4b 45 59 5f 55 53 41 47 45 _OR_ENHKEY_USAGE 2c40: 5f 46 4c 41 47 20 3d 20 31 36 2c 0d 0a 09 43 45 _FLAG = 16,...CE 2c50: 52 54 5f 46 49 4e 44 5f 4f 50 54 49 4f 4e 41 4c RT_FIND_OPTIONAL 2c60: 5f 45 4e 48 4b 45 59 5f 55 53 41 47 45 5f 46 4c _ENHKEY_USAGE_FL 2c70: 41 47 20 20 3d 20 31 2c 0d 0a 09 43 45 52 54 5f AG = 1,...CERT_ 2c80: 46 49 4e 44 5f 4e 4f 5f 45 4e 48 4b 45 59 5f 55 FIND_NO_ENHKEY_U 2c90: 53 41 47 45 5f 46 4c 41 47 20 20 3d 20 38 2c 0d SAGE_FLAG = 8,. 2ca0: 0a 09 43 45 52 54 5f 46 49 4e 44 5f 56 41 4c 49 ..CERT_FIND_VALI 2cb0: 44 5f 45 4e 48 4b 45 59 5f 55 53 41 47 45 5f 46 D_ENHKEY_USAGE_F 2cc0: 4c 41 47 20 20 3d 20 33 32 2c 0d 0a 09 43 45 52 LAG = 32,...CER 2cd0: 54 5f 46 49 4e 44 5f 45 58 54 5f 4f 4e 4c 59 5f T_FIND_EXT_ONLY_ 2ce0: 45 4e 48 4b 45 59 5f 55 53 41 47 45 5f 46 4c 41 ENHKEY_USAGE_FLA 2cf0: 47 20 20 3d 20 32 2c 0d 0a 7d 0d 0a 0d 0a 65 6e G = 2,..}....en 2d00: 75 6d 20 7b 0d 0a 09 43 45 52 54 5f 43 41 53 45 um {...CERT_CASE 2d10: 5f 49 4e 53 45 4e 53 49 54 49 56 45 5f 49 53 5f _INSENSITIVE_IS_ 2d20: 52 44 4e 5f 41 54 54 52 53 5f 46 4c 41 47 20 20 RDN_ATTRS_FLAG 2d30: 3d 20 32 2c 0d 0a 09 43 45 52 54 5f 55 4e 49 43 = 2,...CERT_UNIC 2d40: 4f 44 45 5f 49 53 5f 52 44 4e 5f 41 54 54 52 53 ODE_IS_RDN_ATTRS 2d50: 5f 46 4c 41 47 20 3d 20 31 2c 0d 0a 09 43 45 52 _FLAG = 1,...CER 2d60: 54 5f 43 48 41 49 4e 5f 46 49 4e 44 5f 42 59 5f T_CHAIN_FIND_BY_ 2d70: 49 53 53 55 45 52 20 3d 20 31 2c 0d 0a 7d 0d 0a ISSUER = 1,..}.. 2d80: 0d 0a 65 6e 75 6d 20 7b 0d 0a 09 43 45 52 54 5f ..enum {...CERT_ 2d90: 43 48 41 49 4e 5f 46 49 4e 44 5f 42 59 5f 49 53 CHAIN_FIND_BY_IS 2da0: 53 55 45 52 5f 43 4f 4d 50 41 52 45 5f 4b 45 59 SUER_COMPARE_KEY 2db0: 5f 46 4c 41 47 20 3d 20 31 2c 0d 0a 09 43 45 52 _FLAG = 1,...CER 2dc0: 54 5f 43 48 41 49 4e 5f 46 49 4e 44 5f 42 59 5f T_CHAIN_FIND_BY_ 2dd0: 49 53 53 55 45 52 5f 43 4f 4d 50 4c 45 58 5f 43 ISSUER_COMPLEX_C 2de0: 48 41 49 4e 5f 46 4c 41 47 20 3d 20 32 2c 0d 0a HAIN_FLAG = 2,.. 2df0: 09 43 45 52 54 5f 43 48 41 49 4e 5f 46 49 4e 44 .CERT_CHAIN_FIND 2e00: 5f 42 59 5f 49 53 53 55 45 52 5f 43 41 43 48 45 _BY_ISSUER_CACHE 2e10: 5f 4f 4e 4c 59 5f 55 52 4c 5f 46 4c 41 47 20 3d _ONLY_URL_FLAG = 2e20: 20 34 2c 0d 0a 09 43 45 52 54 5f 43 48 41 49 4e 4,...CERT_CHAIN 2e30: 5f 46 49 4e 44 5f 42 59 5f 49 53 53 55 45 52 5f _FIND_BY_ISSUER_ 2e40: 4c 4f 43 41 4c 5f 4d 41 43 48 49 4e 45 5f 46 4c LOCAL_MACHINE_FL 2e50: 41 47 20 3d 20 38 2c 0d 0a 09 43 45 52 54 5f 43 AG = 8,...CERT_C 2e60: 48 41 49 4e 5f 46 49 4e 44 5f 42 59 5f 49 53 53 HAIN_FIND_BY_ISS 2e70: 55 45 52 5f 4e 4f 5f 4b 45 59 5f 46 4c 41 47 20 UER_NO_KEY_FLAG 2e80: 3d 20 31 36 33 38 34 2c 0d 0a 09 43 45 52 54 5f = 16384,...CERT_ 2e90: 43 48 41 49 4e 5f 46 49 4e 44 5f 42 59 5f 49 53 CHAIN_FIND_BY_IS 2ea0: 53 55 45 52 5f 43 41 43 48 45 5f 4f 4e 4c 59 5f SUER_CACHE_ONLY_ 2eb0: 46 4c 41 47 20 3d 20 33 32 37 36 38 2c 0d 0a 7d FLAG = 32768,..} 2ec0: 0d 0a 0d 0a 65 6e 75 6d 20 7b 0d 0a 09 43 45 52 ....enum {...CER 2ed0: 54 5f 53 54 4f 52 45 5f 50 52 4f 56 5f 53 59 53 T_STORE_PROV_SYS 2ee0: 54 45 4d 20 3d 20 31 30 2c 0d 0a 09 43 45 52 54 TEM = 10,...CERT 2ef0: 5f 53 59 53 54 45 4d 5f 53 54 4f 52 45 5f 4c 4f _SYSTEM_STORE_LO 2f00: 43 41 4c 5f 4d 41 43 48 49 4e 45 20 3d 20 31 33 CAL_MACHINE = 13 2f10: 31 30 37 32 2c 0d 0a 7d 0d 0a 0d 0a 65 6e 75 6d 1072,..}....enum 2f20: 20 7b 0d 0a 09 73 7a 4f 49 44 5f 50 4b 49 58 5f {...szOID_PKIX_ 2f30: 4b 50 5f 53 45 52 56 45 52 5f 41 55 54 48 20 3d KP_SERVER_AUTH = 2f40: 20 22 34 32 33 35 36 30 30 22 2c 0d 0a 09 73 7a "4235600",...sz 2f50: 4f 49 44 5f 53 45 52 56 45 52 5f 47 41 54 45 44 OID_SERVER_GATED 2f60: 5f 43 52 59 50 54 4f 20 3d 20 22 34 32 33 35 36 _CRYPTO = "42356 2f70: 35 38 22 2c 0d 0a 09 73 7a 4f 49 44 5f 53 47 43 58",...szOID_SGC 2f80: 5f 4e 45 54 53 43 41 50 45 20 3d 20 22 32 2e 31 _NETSCAPE = "2.1 2f90: 36 2e 38 34 30 2e 31 2e 31 31 33 37 33 30 2e 34 6.840.1.113730.4 2fa0: 2e 31 22 2c 0d 0a 09 73 7a 4f 49 44 5f 50 4b 49 .1",...szOID_PKI 2fb0: 58 5f 4b 50 5f 43 4c 49 45 4e 54 5f 41 55 54 48 X_KP_CLIENT_AUTH 2fc0: 20 3d 20 22 31 2e 33 2e 36 2e 31 2e 35 2e 35 2e = "1.3.6.1.5.5. 2fd0: 37 2e 33 2e 32 22 2c 0d 0a 7d 0d 0a 0d 0a 65 6e 7.3.2",..}....en 2fe0: 75 6d 20 7b 0d 0a 09 43 52 59 50 54 5f 4e 4f 48 um {...CRYPT_NOH 2ff0: 41 53 48 4f 49 44 20 3d 20 30 78 30 30 30 30 30 ASHOID = 0x00000 3000: 30 30 31 2c 0d 0a 09 43 52 59 50 54 5f 4e 4f 5f 001,...CRYPT_NO_ 3010: 53 41 4c 54 20 3d 20 30 78 31 30 2c 0d 0a 09 43 SALT = 0x10,...C 3020: 52 59 50 54 5f 50 52 45 47 45 4e 20 3d 20 30 78 RYPT_PREGEN = 0x 3030: 34 30 2c 0d 0a 7d 0d 0a 0d 0a 65 6e 75 6d 20 7b 40,..}....enum { 3040: 0d 0a 09 43 52 59 50 54 5f 52 45 43 49 50 49 45 ...CRYPT_RECIPIE 3050: 4e 54 20 3d 20 30 78 31 30 2c 0d 0a 09 43 52 59 NT = 0x10,...CRY 3060: 50 54 5f 49 4e 49 54 49 41 54 4f 52 20 3d 20 30 PT_INITIATOR = 0 3070: 78 34 30 2c 0d 0a 09 43 52 59 50 54 5f 4f 4e 4c x40,...CRYPT_ONL 3080: 49 4e 45 20 3d 20 30 78 38 30 2c 0d 0a 09 43 52 INE = 0x80,...CR 3090: 59 50 54 5f 53 46 20 3d 20 30 78 31 30 30 2c 0d YPT_SF = 0x100,. 30a0: 0a 09 43 52 59 50 54 5f 43 52 45 41 54 45 5f 49 ..CRYPT_CREATE_I 30b0: 56 20 3d 20 30 78 32 30 30 2c 0d 0a 09 43 52 59 V = 0x200,...CRY 30c0: 50 54 5f 4b 45 4b 20 3d 20 30 78 34 30 30 2c 0d PT_KEK = 0x400,. 30d0: 0a 09 43 52 59 50 54 5f 44 41 54 41 5f 4b 45 59 ..CRYPT_DATA_KEY 30e0: 20 3d 20 30 78 38 30 30 2c 0d 0a 09 43 52 59 50 = 0x800,...CRYP 30f0: 54 5f 56 4f 4c 41 54 49 4c 45 20 3d 20 30 78 31 T_VOLATILE = 0x1 3100: 30 30 30 2c 0d 0a 09 43 52 59 50 54 5f 53 47 43 000,...CRYPT_SGC 3110: 4b 45 59 20 3d 20 30 78 32 30 30 30 2c 0d 0a 7d KEY = 0x2000,..} 3120: 0d 0a 0d 0a 65 6e 75 6d 20 7b 0d 0a 09 4b 50 5f ....enum {...KP_ 3130: 49 56 20 20 20 20 20 20 20 20 20 20 20 20 20 20 IV 3140: 20 3d 20 30 78 30 30 30 30 30 30 30 31 2c 0d 0a = 0x00000001,.. 3150: 09 4b 50 5f 53 41 4c 54 20 20 20 20 20 20 20 20 .KP_SALT 3160: 20 20 20 20 20 3d 20 30 78 30 30 30 30 30 30 30 = 0x0000000 3170: 32 2c 0d 0a 09 4b 50 5f 50 41 44 44 49 4e 47 20 2,...KP_PADDING 3180: 20 20 20 20 20 20 20 20 20 3d 20 30 78 30 30 30 = 0x000 3190: 30 30 30 30 33 2c 0d 0a 09 4b 50 5f 4d 4f 44 45 00003,...KP_MODE 31a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 30 = 0 31b0: 78 30 30 30 30 30 30 30 34 2c 0d 0a 09 4b 50 5f x00000004,...KP_ 31c0: 4d 4f 44 45 5f 42 49 54 53 20 20 20 20 20 20 20 MODE_BITS 31d0: 20 3d 20 30 78 30 30 30 30 30 30 30 35 2c 0d 0a = 0x00000005,.. 31e0: 09 4b 50 5f 50 45 52 4d 49 53 53 49 4f 4e 53 20 .KP_PERMISSIONS 31f0: 20 20 20 20 20 3d 20 30 78 30 30 30 30 30 30 30 = 0x0000000 3200: 36 2c 0d 0a 09 4b 50 5f 41 4c 47 49 44 20 20 20 6,...KP_ALGID 3210: 20 20 20 20 20 20 20 20 20 3d 20 30 78 30 30 30 = 0x000 3220: 30 30 30 30 37 2c 0d 0a 09 4b 50 5f 42 4c 4f 43 00007,...KP_BLOC 3230: 4b 4c 45 4e 20 20 20 20 20 20 20 20 20 3d 20 30 KLEN = 0 3240: 78 30 30 30 30 30 30 30 38 2c 0d 0a 09 4b 50 5f x00000008,...KP_ 3250: 4b 45 59 4c 45 4e 20 20 20 20 20 20 20 20 20 20 KEYLEN 3260: 20 3d 20 30 78 30 30 30 30 30 30 30 39 2c 0d 0a = 0x00000009,.. 3270: 09 4b 50 5f 53 41 4c 54 5f 45 58 20 20 20 20 20 .KP_SALT_EX 3280: 20 20 20 20 20 3d 20 30 78 30 30 30 30 30 30 30 = 0x0000000 3290: 61 2c 0d 0a 09 4b 50 5f 50 20 20 20 20 20 20 20 a,...KP_P 32a0: 20 20 20 20 20 20 20 20 20 3d 20 30 78 30 30 30 = 0x000 32b0: 30 30 30 30 62 2c 0d 0a 09 4b 50 5f 47 20 20 20 0000b,...KP_G 32c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 30 = 0 32d0: 78 30 30 30 30 30 30 30 63 2c 0d 0a 09 4b 50 5f x0000000c,...KP_ 32e0: 51 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 Q 32f0: 20 3d 20 30 78 30 30 30 30 30 30 30 64 2c 0d 0a = 0x0000000d,.. 3300: 09 4b 50 5f 58 20 20 20 20 20 20 20 20 20 20 20 .KP_X 3310: 20 20 20 20 20 3d 20 30 78 30 30 30 30 30 30 30 = 0x0000000 3320: 65 2c 0d 0a 09 4b 50 5f 59 20 20 20 20 20 20 20 e,...KP_Y 3330: 20 20 20 20 20 20 20 20 20 3d 20 30 78 30 30 30 = 0x000 3340: 30 30 30 30 66 2c 0d 0a 09 4b 50 5f 52 41 20 20 0000f,...KP_RA 3350: 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 30 = 0 3360: 78 30 30 30 30 30 30 31 30 2c 0d 0a 09 4b 50 5f x00000010,...KP_ 3370: 52 42 20 20 20 20 20 20 20 20 20 20 20 20 20 20 RB 3380: 20 3d 20 30 78 30 30 30 30 30 30 31 31 2c 0d 0a = 0x00000011,.. 3390: 09 4b 50 5f 49 4e 46 4f 20 20 20 20 20 20 20 20 .KP_INFO 33a0: 20 20 20 20 20 3d 20 30 78 30 30 30 30 30 30 31 = 0x0000001 33b0: 32 2c 0d 0a 09 4b 50 5f 45 46 46 45 43 54 49 56 2,...KP_EFFECTIV 33c0: 45 5f 4b 45 59 4c 45 4e 20 3d 20 30 78 30 30 30 E_KEYLEN = 0x000 33d0: 30 30 30 31 33 2c 0d 0a 09 4b 50 5f 53 43 48 41 00013,...KP_SCHA 33e0: 4e 4e 45 4c 5f 41 4c 47 20 20 20 20 20 3d 20 30 NNEL_ALG = 0 33f0: 78 30 30 30 30 30 30 31 34 2c 0d 0a 09 4b 50 5f x00000014,...KP_ 3400: 50 55 42 5f 50 41 52 41 4d 53 20 20 20 20 20 20 PUB_PARAMS 3410: 20 3d 20 30 78 30 30 30 30 30 30 32 37 2c 0d 0a = 0x00000027,.. 3420: 7d 0d 0a 0d 0a 65 6e 75 6d 20 7b 0d 0a 09 43 52 }....enum {...CR 3430: 59 50 54 5f 46 4c 41 47 5f 50 43 54 31 20 20 20 YPT_FLAG_PCT1 3440: 20 3d 20 30 78 30 30 30 31 2c 0d 0a 09 43 52 59 = 0x0001,...CRY 3450: 50 54 5f 46 4c 41 47 5f 53 53 4c 32 20 20 20 20 PT_FLAG_SSL2 3460: 3d 20 30 78 30 30 30 32 2c 0d 0a 09 43 52 59 50 = 0x0002,...CRYP 3470: 54 5f 46 4c 41 47 5f 53 53 4c 33 20 20 20 20 3d T_FLAG_SSL3 = 3480: 20 30 78 30 30 30 34 2c 0d 0a 09 43 52 59 50 54 0x0004,...CRYPT 3490: 5f 46 4c 41 47 5f 54 4c 53 31 20 20 20 20 3d 20 _FLAG_TLS1 = 34a0: 30 78 30 30 30 38 2c 0d 0a 09 43 52 59 50 54 5f 0x0008,...CRYPT_ 34b0: 46 4c 41 47 5f 49 50 53 45 43 20 20 20 3d 20 30 FLAG_IPSEC = 0 34c0: 78 30 30 31 30 2c 0d 0a 09 43 52 59 50 54 5f 46 x0010,...CRYPT_F 34d0: 4c 41 47 5f 53 49 47 4e 49 4e 47 20 3d 20 30 78 LAG_SIGNING = 0x 34e0: 30 30 32 30 2c 0d 0a 7d 0d 0a 0d 0a 65 6e 75 6d 0020,..}....enum 34f0: 20 7b 0d 0a 09 53 43 48 41 4e 4e 45 4c 5f 4d 41 {...SCHANNEL_MA 3500: 43 5f 4b 45 59 20 20 20 20 3d 20 30 78 30 30 30 C_KEY = 0x000 3510: 30 30 30 30 30 2c 0d 0a 09 53 43 48 41 4e 4e 45 00000,...SCHANNE 3520: 4c 5f 45 4e 43 5f 4b 45 59 20 20 20 20 3d 20 30 L_ENC_KEY = 0 3530: 78 30 30 30 30 30 30 30 31 2c 0d 0a 7d 0d 0a 0d x00000001,..}... 3540: 0a 65 6e 75 6d 20 7b 0d 0a 09 49 4e 54 45 52 4e .enum {...INTERN 3550: 41 54 49 4f 4e 41 4c 5f 55 53 41 47 45 20 3d 20 ATIONAL_USAGE = 3560: 30 78 30 30 30 30 30 30 30 31 2c 0d 0a 7d 0d 0a 0x00000001,..}.. 3570: 0d 0a 0d 0a 61 6c 69 61 73 20 55 49 4e 54 20 41 ....alias UINT A 3580: 4c 47 5f 49 44 3b 0d 0a 61 6c 69 61 73 20 55 4c LG_ID;..alias UL 3590: 4f 4e 47 20 48 43 52 59 50 54 50 52 4f 56 2c 20 ONG HCRYPTPROV, 35a0: 48 43 52 59 50 54 4b 45 59 2c 20 48 43 52 59 50 HCRYPTKEY, HCRYP 35b0: 54 48 41 53 48 3b 0d 0a 61 6c 69 61 73 20 50 56 THASH;..alias PV 35c0: 4f 49 44 20 48 43 45 52 54 53 54 4f 52 45 2c 20 OID HCERTSTORE, 35d0: 48 43 52 59 50 54 4d 53 47 2c 20 48 43 45 52 54 HCRYPTMSG, HCERT 35e0: 43 48 41 49 4e 45 4e 47 49 4e 45 3b 0d 0a 0d 0a CHAINENGINE;.... 35f0: 73 74 72 75 63 74 20 56 54 61 62 6c 65 50 72 6f struct VTablePro 3600: 76 53 74 72 75 63 20 7b 0d 0a 09 46 41 52 50 52 vStruc {...FARPR 3610: 4f 43 20 46 75 6e 63 56 65 72 69 66 79 49 6d 61 OC FuncVerifyIma 3620: 67 65 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 20 56 54 ge;..}..alias VT 3630: 61 62 6c 65 50 72 6f 76 53 74 72 75 63 2a 20 50 ableProvStruc* P 3640: 56 54 61 62 6c 65 50 72 6f 76 53 74 72 75 63 3b VTableProvStruc; 3650: 0d 0a 0d 0a 73 74 72 75 63 74 20 5f 43 52 59 50 ....struct _CRYP 3660: 54 4f 41 50 49 5f 42 4c 4f 42 20 7b 0d 0a 09 44 TOAPI_BLOB {...D 3670: 57 4f 52 44 20 63 62 44 61 74 61 3b 0d 0a 09 42 WORD cbData;...B 3680: 59 54 45 2a 20 70 62 44 61 74 61 3b 0d 0a 7d 0d YTE* pbData;..}. 3690: 0a 61 6c 69 61 73 20 5f 43 52 59 50 54 4f 41 50 .alias _CRYPTOAP 36a0: 49 5f 42 4c 4f 42 20 43 52 59 50 54 5f 49 4e 54 I_BLOB CRYPT_INT 36b0: 45 47 45 52 5f 42 4c 4f 42 2c 20 43 52 59 50 54 EGER_BLOB, CRYPT 36c0: 5f 55 49 4e 54 5f 42 4c 4f 42 2c 0d 0a 20 20 43 _UINT_BLOB,.. C 36d0: 52 59 50 54 5f 4f 42 4a 49 44 5f 42 4c 4f 42 2c RYPT_OBJID_BLOB, 36e0: 20 43 45 52 54 5f 4e 41 4d 45 5f 42 4c 4f 42 2c CERT_NAME_BLOB, 36f0: 20 43 45 52 54 5f 52 44 4e 5f 56 41 4c 55 45 5f CERT_RDN_VALUE_ 3700: 42 4c 4f 42 2c 20 43 45 52 54 5f 42 4c 4f 42 2c BLOB, CERT_BLOB, 3710: 0d 0a 20 20 43 52 4c 5f 42 4c 4f 42 2c 20 44 41 .. CRL_BLOB, DA 3720: 54 41 5f 42 4c 4f 42 2c 20 43 52 59 50 54 5f 44 TA_BLOB, CRYPT_D 3730: 41 54 41 5f 42 4c 4f 42 2c 20 43 52 59 50 54 5f ATA_BLOB, CRYPT_ 3740: 48 41 53 48 5f 42 4c 4f 42 2c 0d 0a 20 20 43 52 HASH_BLOB,.. CR 3750: 59 50 54 5f 44 49 47 45 53 54 5f 42 4c 4f 42 2c YPT_DIGEST_BLOB, 3760: 20 43 52 59 50 54 5f 44 45 52 5f 42 4c 4f 42 2c CRYPT_DER_BLOB, 3770: 20 43 52 59 50 54 5f 41 54 54 52 5f 42 4c 4f 42 CRYPT_ATTR_BLOB 3780: 3b 0d 0a 61 6c 69 61 73 20 5f 43 52 59 50 54 4f ;..alias _CRYPTO 3790: 41 50 49 5f 42 4c 4f 42 2a 20 50 43 52 59 50 54 API_BLOB* PCRYPT 37a0: 5f 49 4e 54 45 47 45 52 5f 42 4c 4f 42 2c 20 50 _INTEGER_BLOB, P 37b0: 43 52 59 50 54 5f 55 49 4e 54 5f 42 4c 4f 42 2c CRYPT_UINT_BLOB, 37c0: 0d 0a 20 20 50 43 52 59 50 54 5f 4f 42 4a 49 44 .. PCRYPT_OBJID 37d0: 5f 42 4c 4f 42 2c 20 50 43 45 52 54 5f 4e 41 4d _BLOB, PCERT_NAM 37e0: 45 5f 42 4c 4f 42 2c 20 50 43 45 52 54 5f 52 44 E_BLOB, PCERT_RD 37f0: 4e 5f 56 41 4c 55 45 5f 42 4c 4f 42 2c 20 50 43 N_VALUE_BLOB, PC 3800: 45 52 54 5f 42 4c 4f 42 2c 0d 0a 20 20 50 43 52 ERT_BLOB,.. PCR 3810: 4c 5f 42 4c 4f 42 2c 20 50 44 41 54 41 5f 42 4c L_BLOB, PDATA_BL 3820: 4f 42 2c 20 50 43 52 59 50 54 5f 44 41 54 41 5f OB, PCRYPT_DATA_ 3830: 42 4c 4f 42 2c 20 50 43 52 59 50 54 5f 48 41 53 BLOB, PCRYPT_HAS 3840: 48 5f 42 4c 4f 42 2c 0d 0a 20 20 50 43 52 59 50 H_BLOB,.. PCRYP 3850: 54 5f 44 49 47 45 53 54 5f 42 4c 4f 42 2c 20 50 T_DIGEST_BLOB, P 3860: 43 52 59 50 54 5f 44 45 52 5f 42 4c 4f 42 2c 20 CRYPT_DER_BLOB, 3870: 50 43 52 59 50 54 5f 41 54 54 52 5f 42 4c 4f 42 PCRYPT_ATTR_BLOB 3880: 3b 0d 0a 0d 0a 2f 2f 20 6e 6f 74 20 64 65 73 63 ;....// not desc 3890: 72 69 62 65 64 20 69 6e 20 53 44 4b 3b 20 68 61 ribed in SDK; ha 38a0: 73 20 74 68 65 20 73 61 6d 65 20 6c 61 79 6f 75 s the same layou 38b0: 74 20 61 73 20 48 54 54 50 53 50 6f 6c 69 63 79 t as HTTPSPolicy 38c0: 43 61 6c 6c 62 61 63 6b 44 61 74 61 0d 0a 73 74 CallbackData..st 38d0: 72 75 63 74 20 53 53 4c 5f 45 58 54 52 41 5f 43 ruct SSL_EXTRA_C 38e0: 45 52 54 5f 43 48 41 49 4e 5f 50 4f 4c 49 43 59 ERT_CHAIN_POLICY 38f0: 5f 50 41 52 41 20 7b 0d 0a 09 44 57 4f 52 44 20 _PARA {...DWORD 3900: 20 63 62 53 74 72 75 63 74 3b 0d 0a 09 44 57 4f cbStruct;...DWO 3910: 52 44 20 20 64 77 41 75 74 68 54 79 70 65 3b 0d RD dwAuthType;. 3920: 0a 09 44 57 4f 52 44 20 20 66 64 77 43 68 65 63 ..DWORD fdwChec 3930: 6b 73 3b 0d 0a 09 4c 50 57 53 54 52 20 70 77 73 ks;...LPWSTR pws 3940: 7a 53 65 72 76 65 72 4e 61 6d 65 3b 0d 0a 7d 0d zServerName;..}. 3950: 0a 61 6c 69 61 73 20 53 53 4c 5f 45 58 54 52 41 .alias SSL_EXTRA 3960: 5f 43 45 52 54 5f 43 48 41 49 4e 5f 50 4f 4c 49 _CERT_CHAIN_POLI 3970: 43 59 5f 50 41 52 41 20 48 54 54 50 53 50 6f 6c CY_PARA HTTPSPol 3980: 69 63 79 43 61 6c 6c 62 61 63 6b 44 61 74 61 3b icyCallbackData; 3990: 0d 0a 61 6c 69 61 73 20 53 53 4c 5f 45 58 54 52 ..alias SSL_EXTR 39a0: 41 5f 43 45 52 54 5f 43 48 41 49 4e 5f 50 4f 4c A_CERT_CHAIN_POL 39b0: 49 43 59 5f 50 41 52 41 2a 20 50 53 53 4c 5f 45 ICY_PARA* PSSL_E 39c0: 58 54 52 41 5f 43 45 52 54 5f 43 48 41 49 4e 5f XTRA_CERT_CHAIN_ 39d0: 50 4f 4c 49 43 59 5f 50 41 52 41 2c 0d 0a 20 20 POLICY_PARA,.. 39e0: 50 48 54 54 50 53 50 6f 6c 69 63 79 43 61 6c 6c PHTTPSPolicyCall 39f0: 62 61 63 6b 44 61 74 61 3b 0d 0a 0d 0a 2f 2a 20 backData;..../* 3a00: 23 69 66 20 28 5f 57 49 4e 33 32 5f 57 49 4e 4e #if (_WIN32_WINN 3a10: 54 3e 3d 30 78 35 30 30 29 20 2a 2f 0d 0a 73 74 T>=0x500) */..st 3a20: 72 75 63 74 20 43 45 52 54 5f 43 48 41 49 4e 5f ruct CERT_CHAIN_ 3a30: 50 4f 4c 49 43 59 5f 50 41 52 41 20 7b 0d 0a 09 POLICY_PARA {... 3a40: 44 57 4f 52 44 20 63 62 53 69 7a 65 20 3d 20 43 DWORD cbSize = C 3a50: 45 52 54 5f 43 48 41 49 4e 5f 50 4f 4c 49 43 59 ERT_CHAIN_POLICY 3a60: 5f 50 41 52 41 2e 73 69 7a 65 6f 66 3b 0d 0a 09 _PARA.sizeof;... 3a70: 44 57 4f 52 44 20 64 77 46 6c 61 67 73 3b 0d 0a DWORD dwFlags;.. 3a80: 09 76 6f 69 64 2a 20 70 76 45 78 74 72 61 50 6f .void* pvExtraPo 3a90: 6c 69 63 79 50 61 72 61 3b 0d 0a 7d 0d 0a 61 6c licyPara;..}..al 3aa0: 69 61 73 20 43 45 52 54 5f 43 48 41 49 4e 5f 50 ias CERT_CHAIN_P 3ab0: 4f 4c 49 43 59 5f 50 41 52 41 2a 20 50 43 45 52 OLICY_PARA* PCER 3ac0: 54 5f 43 48 41 49 4e 5f 50 4f 4c 49 43 59 5f 50 T_CHAIN_POLICY_P 3ad0: 41 52 41 3b 0d 0a 0d 0a 73 74 72 75 63 74 20 43 ARA;....struct C 3ae0: 45 52 54 5f 43 48 41 49 4e 5f 50 4f 4c 49 43 59 ERT_CHAIN_POLICY 3af0: 5f 53 54 41 54 55 53 20 7b 0d 0a 09 44 57 4f 52 _STATUS {...DWOR 3b00: 44 20 63 62 53 69 7a 65 20 3d 20 43 45 52 54 5f D cbSize = CERT_ 3b10: 43 48 41 49 4e 5f 50 4f 4c 49 43 59 5f 53 54 41 CHAIN_POLICY_STA 3b20: 54 55 53 2e 73 69 7a 65 6f 66 3b 0d 0a 09 44 57 TUS.sizeof;...DW 3b30: 4f 52 44 20 64 77 45 72 72 6f 72 3b 0d 0a 09 4c ORD dwError;...L 3b40: 4f 4e 47 20 20 6c 43 68 61 69 6e 49 6e 64 65 78 ONG lChainIndex 3b50: 3b 0d 0a 09 4c 4f 4e 47 20 20 6c 45 6c 65 6d 65 ;...LONG lEleme 3b60: 6e 74 49 6e 64 65 78 3b 0d 0a 09 76 6f 69 64 2a ntIndex;...void* 3b70: 20 70 76 45 78 74 72 61 50 6f 6c 69 63 79 53 74 pvExtraPolicySt 3b80: 61 74 75 73 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 20 atus;..}..alias 3b90: 43 45 52 54 5f 43 48 41 49 4e 5f 50 4f 4c 49 43 CERT_CHAIN_POLIC 3ba0: 59 5f 53 54 41 54 55 53 2a 20 50 43 45 52 54 5f Y_STATUS* PCERT_ 3bb0: 43 48 41 49 4e 5f 50 4f 4c 49 43 59 5f 53 54 41 CHAIN_POLICY_STA 3bc0: 54 55 53 3b 0d 0a 2f 2a 20 23 65 6e 64 69 66 20 TUS;../* #endif 3bd0: 2a 2f 0d 0a 0d 0a 73 74 72 75 63 74 20 43 52 59 */....struct CRY 3be0: 50 54 5f 41 4c 47 4f 52 49 54 48 4d 5f 49 44 45 PT_ALGORITHM_IDE 3bf0: 4e 54 49 46 49 45 52 20 7b 0d 0a 09 4c 50 53 54 NTIFIER {...LPST 3c00: 52 20 70 73 7a 4f 62 6a 49 64 3b 0d 0a 09 43 52 R pszObjId;...CR 3c10: 59 50 54 5f 4f 42 4a 49 44 5f 42 4c 4f 42 20 50 YPT_OBJID_BLOB P 3c20: 61 72 61 6d 65 74 65 72 73 3b 0d 0a 7d 0d 0a 61 arameters;..}..a 3c30: 6c 69 61 73 20 43 52 59 50 54 5f 41 4c 47 4f 52 lias CRYPT_ALGOR 3c40: 49 54 48 4d 5f 49 44 45 4e 54 49 46 49 45 52 2a ITHM_IDENTIFIER* 3c50: 20 50 43 52 59 50 54 5f 41 4c 47 4f 52 49 54 48 PCRYPT_ALGORITH 3c60: 4d 5f 49 44 45 4e 54 49 46 49 45 52 3b 0d 0a 0d M_IDENTIFIER;... 3c70: 0a 73 74 72 75 63 74 20 43 52 59 50 54 5f 42 49 .struct CRYPT_BI 3c80: 54 5f 42 4c 4f 42 20 7b 0d 0a 09 44 57 4f 52 44 T_BLOB {...DWORD 3c90: 20 63 62 44 61 74 61 3b 0d 0a 09 42 59 54 45 2a cbData;...BYTE* 3ca0: 20 70 62 44 61 74 61 3b 0d 0a 09 44 57 4f 52 44 pbData;...DWORD 3cb0: 20 63 55 6e 75 73 65 64 42 69 74 73 3b 0d 0a 7d cUnusedBits;..} 3cc0: 0d 0a 61 6c 69 61 73 20 43 52 59 50 54 5f 42 49 ..alias CRYPT_BI 3cd0: 54 5f 42 4c 4f 42 2a 20 50 43 52 59 50 54 5f 42 T_BLOB* PCRYPT_B 3ce0: 49 54 5f 42 4c 4f 42 3b 0d 0a 0d 0a 73 74 72 75 IT_BLOB;....stru 3cf0: 63 74 20 43 45 52 54 5f 50 55 42 4c 49 43 5f 4b ct CERT_PUBLIC_K 3d00: 45 59 5f 49 4e 46 4f 20 7b 0d 0a 09 43 52 59 50 EY_INFO {...CRYP 3d10: 54 5f 41 4c 47 4f 52 49 54 48 4d 5f 49 44 45 4e T_ALGORITHM_IDEN 3d20: 54 49 46 49 45 52 20 41 6c 67 6f 72 69 74 68 6d TIFIER Algorithm 3d30: 3b 0d 0a 09 43 52 59 50 54 5f 42 49 54 5f 42 4c ;...CRYPT_BIT_BL 3d40: 4f 42 20 20 20 20 20 20 20 20 20 20 20 20 20 50 OB P 3d50: 75 62 6c 69 63 4b 65 79 3b 0d 0a 7d 0d 0a 61 6c ublicKey;..}..al 3d60: 69 61 73 20 43 45 52 54 5f 50 55 42 4c 49 43 5f ias CERT_PUBLIC_ 3d70: 4b 45 59 5f 49 4e 46 4f 2a 20 50 43 45 52 54 5f KEY_INFO* PCERT_ 3d80: 50 55 42 4c 49 43 5f 4b 45 59 5f 49 4e 46 4f 3b PUBLIC_KEY_INFO; 3d90: 0d 0a 0d 0a 73 74 72 75 63 74 20 43 45 52 54 5f ....struct CERT_ 3da0: 45 58 54 45 4e 53 49 4f 4e 20 7b 0d 0a 09 4c 50 EXTENSION {...LP 3db0: 53 54 52 20 20 20 20 20 20 20 20 20 20 20 20 70 STR p 3dc0: 73 7a 4f 62 6a 49 64 3b 0d 0a 09 42 4f 4f 4c 20 szObjId;...BOOL 3dd0: 20 20 20 20 20 20 20 20 20 20 20 20 66 43 72 69 fCri 3de0: 74 69 63 61 6c 3b 0d 0a 09 43 52 59 50 54 5f 4f tical;...CRYPT_O 3df0: 42 4a 49 44 5f 42 4c 4f 42 20 56 61 6c 75 65 3b BJID_BLOB Value; 3e00: 0d 0a 7d 0d 0a 61 6c 69 61 73 20 43 45 52 54 5f ..}..alias CERT_ 3e10: 45 58 54 45 4e 53 49 4f 4e 2a 20 50 43 45 52 54 EXTENSION* PCERT 3e20: 5f 45 58 54 45 4e 53 49 4f 4e 3b 0d 0a 0d 0a 73 _EXTENSION;....s 3e30: 74 72 75 63 74 20 43 45 52 54 5f 49 4e 46 4f 20 truct CERT_INFO 3e40: 7b 0d 0a 09 44 57 4f 52 44 20 64 77 56 65 72 73 {...DWORD dwVers 3e50: 69 6f 6e 3b 0d 0a 09 43 52 59 50 54 5f 49 4e 54 ion;...CRYPT_INT 3e60: 45 47 45 52 5f 42 4c 4f 42 20 53 65 72 69 61 6c EGER_BLOB Serial 3e70: 4e 75 6d 62 65 72 3b 0d 0a 09 43 52 59 50 54 5f Number;...CRYPT_ 3e80: 41 4c 47 4f 52 49 54 48 4d 5f 49 44 45 4e 54 49 ALGORITHM_IDENTI 3e90: 46 49 45 52 20 53 69 67 6e 61 74 75 72 65 41 6c FIER SignatureAl 3ea0: 67 6f 72 69 74 68 6d 3b 0d 0a 09 43 45 52 54 5f gorithm;...CERT_ 3eb0: 4e 41 4d 45 5f 42 4c 4f 42 20 49 73 73 75 65 72 NAME_BLOB Issuer 3ec0: 3b 0d 0a 09 46 49 4c 45 54 49 4d 45 20 4e 6f 74 ;...FILETIME Not 3ed0: 42 65 66 6f 72 65 3b 0d 0a 09 46 49 4c 45 54 49 Before;...FILETI 3ee0: 4d 45 20 4e 6f 74 41 66 74 65 72 3b 0d 0a 09 43 ME NotAfter;...C 3ef0: 45 52 54 5f 4e 41 4d 45 5f 42 4c 4f 42 20 53 75 ERT_NAME_BLOB Su 3f00: 62 6a 65 63 74 3b 0d 0a 09 43 45 52 54 5f 50 55 bject;...CERT_PU 3f10: 42 4c 49 43 5f 4b 45 59 5f 49 4e 46 4f 20 53 75 BLIC_KEY_INFO Su 3f20: 62 6a 65 63 74 50 75 62 6c 69 63 4b 65 79 49 6e bjectPublicKeyIn 3f30: 66 6f 3b 0d 0a 09 43 52 59 50 54 5f 42 49 54 5f fo;...CRYPT_BIT_ 3f40: 42 4c 4f 42 20 49 73 73 75 65 72 55 6e 69 71 75 BLOB IssuerUniqu 3f50: 65 49 64 3b 0d 0a 09 43 52 59 50 54 5f 42 49 54 eId;...CRYPT_BIT 3f60: 5f 42 4c 4f 42 20 53 75 62 6a 65 63 74 55 6e 69 _BLOB SubjectUni 3f70: 71 75 65 49 64 3b 0d 0a 09 44 57 4f 52 44 20 63 queId;...DWORD c 3f80: 45 78 74 65 6e 73 69 6f 6e 3b 0d 0a 09 50 43 45 Extension;...PCE 3f90: 52 54 5f 45 58 54 45 4e 53 49 4f 4e 20 72 67 45 RT_EXTENSION rgE 3fa0: 78 74 65 6e 73 69 6f 6e 3b 0d 0a 7d 0d 0a 61 6c xtension;..}..al 3fb0: 69 61 73 20 43 45 52 54 5f 49 4e 46 4f 2a 20 50 ias CERT_INFO* P 3fc0: 43 45 52 54 5f 49 4e 46 4f 3b 0d 0a 0d 0a 73 74 CERT_INFO;....st 3fd0: 72 75 63 74 20 43 45 52 54 5f 43 4f 4e 54 45 58 ruct CERT_CONTEX 3fe0: 54 20 7b 0d 0a 09 44 57 4f 52 44 20 20 20 20 20 T {...DWORD 3ff0: 20 64 77 43 65 72 74 45 6e 63 6f 64 69 6e 67 54 dwCertEncodingT 4000: 79 70 65 3b 0d 0a 09 42 59 54 45 2a 20 20 20 20 ype;...BYTE* 4010: 20 20 70 62 43 65 72 74 45 6e 63 6f 64 65 64 3b pbCertEncoded; 4020: 0d 0a 09 44 57 4f 52 44 20 20 20 20 20 20 63 62 ...DWORD cb 4030: 43 65 72 74 45 6e 63 6f 64 65 64 3b 0d 0a 09 50 CertEncoded;...P 4040: 43 45 52 54 5f 49 4e 46 4f 20 70 43 65 72 74 49 CERT_INFO pCertI 4050: 6e 66 6f 3b 0d 0a 09 48 43 45 52 54 53 54 4f 52 nfo;...HCERTSTOR 4060: 45 20 68 43 65 72 74 53 74 6f 72 65 3b 0d 0a 7d E hCertStore;..} 4070: 0d 0a 61 6c 69 61 73 20 43 45 52 54 5f 43 4f 4e ..alias CERT_CON 4080: 54 45 58 54 2a 20 20 20 20 20 20 20 20 50 43 45 TEXT* PCE 4090: 52 54 5f 43 4f 4e 54 45 58 54 3b 0d 0a 61 6c 69 RT_CONTEXT;..ali 40a0: 61 73 20 63 6f 6e 73 74 28 43 45 52 54 5f 43 4f as const(CERT_CO 40b0: 4e 54 45 58 54 29 2a 20 50 43 43 45 52 54 5f 43 NTEXT)* PCCERT_C 40c0: 4f 4e 54 45 58 54 3b 0d 0a 0d 0a 73 74 72 75 63 ONTEXT;....struc 40d0: 74 20 43 54 4c 5f 55 53 41 47 45 20 7b 0d 0a 09 t CTL_USAGE {... 40e0: 44 57 4f 52 44 20 20 63 55 73 61 67 65 49 64 65 DWORD cUsageIde 40f0: 6e 74 69 66 69 65 72 3b 0d 0a 09 4c 50 53 54 52 ntifier;...LPSTR 4100: 2a 20 72 67 70 73 7a 55 73 61 67 65 49 64 65 6e * rgpszUsageIden 4110: 74 69 66 69 65 72 3b 0d 0a 7d 0d 0a 61 6c 69 61 tifier;..}..alia 4120: 73 20 43 54 4c 5f 55 53 41 47 45 20 43 45 52 54 s CTL_USAGE CERT 4130: 5f 45 4e 48 4b 45 59 5f 55 53 41 47 45 3b 0d 0a _ENHKEY_USAGE;.. 4140: 61 6c 69 61 73 20 43 54 4c 5f 55 53 41 47 45 2a alias CTL_USAGE* 4150: 20 50 43 54 52 4c 5f 55 53 41 47 45 2c 20 50 43 PCTRL_USAGE, PC 4160: 45 52 54 5f 45 4e 48 4b 45 59 5f 55 53 41 47 45 ERT_ENHKEY_USAGE 4170: 3b 0d 0a 0d 0a 73 74 72 75 63 74 20 43 45 52 54 ;....struct CERT 4180: 5f 55 53 41 47 45 5f 4d 41 54 43 48 20 7b 0d 0a _USAGE_MATCH {.. 4190: 09 44 57 4f 52 44 20 20 20 20 20 20 20 20 20 20 .DWORD 41a0: 20 20 20 64 77 54 79 70 65 3b 0d 0a 09 43 45 52 dwType;...CER 41b0: 54 5f 45 4e 48 4b 45 59 5f 55 53 41 47 45 20 55 T_ENHKEY_USAGE U 41c0: 73 61 67 65 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 20 sage;..}..alias 41d0: 43 45 52 54 5f 55 53 41 47 45 5f 4d 41 54 43 48 CERT_USAGE_MATCH 41e0: 2a 20 50 43 45 52 54 5f 55 53 41 47 45 5f 4d 41 * PCERT_USAGE_MA 41f0: 54 43 48 3b 0d 0a 2f 2a 20 23 69 66 20 28 5f 57 TCH;../* #if (_W 4200: 49 4e 33 32 5f 57 49 4e 4e 54 3e 3d 30 78 35 30 IN32_WINNT>=0x50 4210: 30 29 20 2a 2f 0d 0a 0d 0a 73 74 72 75 63 74 20 0) */....struct 4220: 43 45 52 54 5f 43 48 41 49 4e 5f 50 41 52 41 20 CERT_CHAIN_PARA 4230: 7b 0d 0a 09 44 57 4f 52 44 20 20 20 20 20 20 20 {...DWORD 4240: 20 20 20 20 20 63 62 53 69 7a 65 20 3d 20 43 45 cbSize = CE 4250: 52 54 5f 43 48 41 49 4e 5f 50 41 52 41 2e 73 69 RT_CHAIN_PARA.si 4260: 7a 65 6f 66 3b 0d 0a 09 43 45 52 54 5f 55 53 41 zeof;...CERT_USA 4270: 47 45 5f 4d 41 54 43 48 20 52 65 71 75 65 73 74 GE_MATCH Request 4280: 65 64 55 73 61 67 65 3b 0d 0a 2f 2f 23 69 66 20 edUsage;..//#if 4290: 43 45 52 54 5f 43 48 41 49 4e 5f 50 41 52 41 5f CERT_CHAIN_PARA_ 42a0: 48 41 53 5f 45 58 54 52 41 5f 46 49 45 4c 44 53 HAS_EXTRA_FIELDS 42b0: 0d 0a 09 43 45 52 54 5f 55 53 41 47 45 5f 4d 41 ...CERT_USAGE_MA 42c0: 54 43 48 20 52 65 71 75 65 73 74 65 64 49 73 73 TCH RequestedIss 42d0: 75 61 6e 63 65 50 6f 6c 69 63 79 3b 0d 0a 09 44 uancePolicy;...D 42e0: 57 4f 52 44 20 20 20 20 20 20 20 20 20 20 20 20 WORD 42f0: 64 77 55 72 6c 52 65 74 72 69 65 76 61 6c 54 69 dwUrlRetrievalTi 4300: 6d 65 6f 75 74 3b 0d 0a 09 42 4f 4f 4c 20 20 20 meout;...BOOL 4310: 20 20 20 20 20 20 20 20 20 20 66 43 68 65 63 6b fCheck 4320: 52 65 76 6f 63 61 74 69 6f 6e 46 72 65 73 68 6e RevocationFreshn 4330: 65 73 73 54 69 6d 65 3b 0d 0a 09 44 57 4f 52 44 essTime;...DWORD 4340: 20 20 20 20 20 20 20 20 20 20 20 20 64 77 52 65 dwRe 4350: 76 6f 63 61 74 69 6f 6e 46 72 65 73 68 6e 65 73 vocationFreshnes 4360: 73 54 69 6d 65 3b 0d 0a 2f 2f 23 65 6e 64 69 66 sTime;..//#endif 4370: 0d 0a 7d 0d 0a 61 6c 69 61 73 20 43 45 52 54 5f ..}..alias CERT_ 4380: 43 48 41 49 4e 5f 50 41 52 41 2a 20 50 43 45 52 CHAIN_PARA* PCER 4390: 54 5f 43 48 41 49 4e 5f 50 41 52 41 3b 0d 0a 0d T_CHAIN_PARA;... 43a0: 0a 65 78 74 65 72 6e 20 28 57 69 6e 64 6f 77 73 .extern (Windows 43b0: 29 20 61 6c 69 61 73 20 42 4f 4f 4c 20 66 75 6e ) alias BOOL fun 43c0: 63 74 69 6f 6e 28 50 43 43 45 52 54 5f 43 4f 4e ction(PCCERT_CON 43d0: 54 45 58 54 2c 20 76 6f 69 64 2a 29 0d 0a 20 20 TEXT, void*).. 43e0: 50 46 4e 5f 43 45 52 54 5f 43 48 41 49 4e 5f 46 PFN_CERT_CHAIN_F 43f0: 49 4e 44 5f 42 59 5f 49 53 53 55 45 52 5f 43 41 IND_BY_ISSUER_CA 4400: 4c 4c 42 41 43 4b 3b 0d 0a 0d 0a 73 74 72 75 63 LLBACK;....struc 4410: 74 20 43 45 52 54 5f 43 48 41 49 4e 5f 46 49 4e t CERT_CHAIN_FIN 4420: 44 5f 42 59 5f 49 53 53 55 45 52 5f 50 41 52 41 D_BY_ISSUER_PARA 4430: 20 7b 0d 0a 09 44 57 4f 52 44 20 20 63 62 53 69 {...DWORD cbSi 4440: 7a 65 20 3d 20 43 45 52 54 5f 43 48 41 49 4e 5f ze = CERT_CHAIN_ 4450: 46 49 4e 44 5f 42 59 5f 49 53 53 55 45 52 5f 50 FIND_BY_ISSUER_P 4460: 41 52 41 2e 73 69 7a 65 6f 66 3b 0d 0a 09 4c 50 ARA.sizeof;...LP 4470: 43 53 54 52 20 70 73 7a 55 73 61 67 65 49 64 65 CSTR pszUsageIde 4480: 6e 74 69 66 69 65 72 3b 0d 0a 09 44 57 4f 52 44 ntifier;...DWORD 4490: 20 20 64 77 4b 65 79 53 70 65 63 3b 0d 0a 09 44 dwKeySpec;...D 44a0: 57 4f 52 44 20 20 64 77 41 63 71 75 69 72 65 50 WORD dwAcquireP 44b0: 72 69 76 61 74 65 4b 65 79 46 6c 61 67 73 3b 0d rivateKeyFlags;. 44c0: 0a 09 44 57 4f 52 44 20 20 63 49 73 73 75 65 72 ..DWORD cIssuer 44d0: 3b 0d 0a 09 43 45 52 54 5f 4e 41 4d 45 5f 42 4c ;...CERT_NAME_BL 44e0: 4f 42 2a 20 72 67 49 73 73 75 65 72 3b 0d 0a 09 OB* rgIssuer;... 44f0: 50 46 4e 5f 43 45 52 54 5f 43 48 41 49 4e 5f 46 PFN_CERT_CHAIN_F 4500: 49 4e 44 5f 42 59 5f 49 53 53 55 45 52 5f 43 41 IND_BY_ISSUER_CA 4510: 4c 4c 42 41 43 4b 20 70 66 6e 46 49 6e 64 43 61 LLBACK pfnFIndCa 4520: 6c 6c 62 61 63 6b 3b 0d 0a 09 76 6f 69 64 2a 20 llback;...void* 4530: 20 70 76 46 69 6e 64 41 72 67 3b 0d 0a 09 44 57 pvFindArg;...DW 4540: 4f 52 44 2a 20 70 64 77 49 73 73 75 65 72 43 68 ORD* pdwIssuerCh 4550: 61 69 6e 49 6e 64 65 78 3b 0d 0a 09 44 57 4f 52 ainIndex;...DWOR 4560: 44 2a 20 70 64 77 49 73 73 75 65 72 45 6c 65 6d D* pdwIssuerElem 4570: 65 6e 74 49 6e 64 65 78 3b 0d 0a 7d 0d 0a 61 6c entIndex;..}..al 4580: 69 61 73 20 43 45 52 54 5f 43 48 41 49 4e 5f 46 ias CERT_CHAIN_F 4590: 49 4e 44 5f 42 59 5f 49 53 53 55 45 52 5f 50 41 IND_BY_ISSUER_PA 45a0: 52 41 2a 20 50 43 45 52 54 5f 43 48 41 49 4e 5f RA* PCERT_CHAIN_ 45b0: 46 49 4e 44 5f 42 59 5f 49 53 53 55 45 52 5f 50 FIND_BY_ISSUER_P 45c0: 41 52 41 3b 0d 0a 2f 2a 20 23 65 6e 64 69 66 20 ARA;../* #endif 45d0: 2a 2f 0d 0a 0d 0a 73 74 72 75 63 74 20 43 45 52 */....struct CER 45e0: 54 5f 54 52 55 53 54 5f 53 54 41 54 55 53 20 7b T_TRUST_STATUS { 45f0: 0d 0a 09 44 57 4f 52 44 20 64 77 45 72 72 6f 72 ...DWORD dwError 4600: 53 74 61 74 75 73 3b 0d 0a 09 44 57 4f 52 44 20 Status;...DWORD 4610: 64 77 49 6e 66 6f 53 74 61 74 75 73 3b 0d 0a 7d dwInfoStatus;..} 4620: 0d 0a 61 6c 69 61 73 20 43 45 52 54 5f 54 52 55 ..alias CERT_TRU 4630: 53 54 5f 53 54 41 54 55 53 2a 20 50 43 45 52 54 ST_STATUS* PCERT 4640: 5f 54 52 55 53 54 5f 53 54 41 54 55 53 3b 0d 0a _TRUST_STATUS;.. 4650: 0d 0a 73 74 72 75 63 74 20 43 52 4c 5f 45 4e 54 ..struct CRL_ENT 4660: 52 59 20 7b 0d 0a 09 43 52 59 50 54 5f 49 4e 54 RY {...CRYPT_INT 4670: 45 47 45 52 5f 42 4c 4f 42 20 53 65 72 69 61 6c EGER_BLOB Serial 4680: 4e 75 6d 62 65 72 3b 0d 0a 09 46 49 4c 45 54 49 Number;...FILETI 4690: 4d 45 20 20 20 20 20 20 20 20 20 20 20 52 65 76 ME Rev 46a0: 6f 63 61 74 69 6f 6e 44 61 74 65 3b 0d 0a 09 44 ocationDate;...D 46b0: 57 4f 52 44 20 20 20 20 20 20 20 20 20 20 20 20 WORD 46c0: 20 20 63 45 78 74 65 6e 73 69 6f 6e 3b 0d 0a 09 cExtension;... 46d0: 50 43 45 52 54 5f 45 58 54 45 4e 53 49 4f 4e 20 PCERT_EXTENSION 46e0: 20 20 20 72 67 45 78 74 65 6e 73 69 6f 6e 3b 0d rgExtension;. 46f0: 0a 7d 0d 0a 61 6c 69 61 73 20 43 52 4c 5f 45 4e .}..alias CRL_EN 4700: 54 52 59 2a 20 50 43 52 4c 5f 45 4e 54 52 59 3b TRY* PCRL_ENTRY; 4710: 0d 0a 0d 0a 73 74 72 75 63 74 20 43 52 4c 5f 49 ....struct CRL_I 4720: 4e 46 4f 20 7b 0d 0a 09 44 57 4f 52 44 20 20 20 NFO {...DWORD 4730: 20 20 20 20 20 20 20 20 64 77 56 65 72 73 69 6f dwVersio 4740: 6e 3b 0d 0a 09 43 52 59 50 54 5f 41 4c 47 4f 52 n;...CRYPT_ALGOR 4750: 49 54 48 4d 5f 49 44 45 4e 54 49 46 49 45 52 20 ITHM_IDENTIFIER 4760: 53 69 67 6e 61 74 75 72 65 41 6c 67 6f 72 69 74 SignatureAlgorit 4770: 68 6d 3b 0d 0a 09 43 45 52 54 5f 4e 41 4d 45 5f hm;...CERT_NAME_ 4780: 42 4c 4f 42 20 20 49 73 73 75 65 72 3b 0d 0a 09 BLOB Issuer;... 4790: 46 49 4c 45 54 49 4d 45 20 20 20 20 20 20 20 20 FILETIME 47a0: 54 68 69 73 55 70 64 61 74 65 3b 0d 0a 09 46 49 ThisUpdate;...FI 47b0: 4c 45 54 49 4d 45 20 20 20 20 20 20 20 20 4e 65 LETIME Ne 47c0: 78 74 55 70 64 61 74 65 3b 0d 0a 09 44 57 4f 52 xtUpdate;...DWOR 47d0: 44 20 20 20 20 20 20 20 20 20 20 20 63 43 52 4c D cCRL 47e0: 45 6e 74 72 79 3b 0d 0a 09 50 43 52 4c 5f 45 4e Entry;...PCRL_EN 47f0: 54 52 59 20 20 20 20 20 20 72 67 43 52 4c 45 6e TRY rgCRLEn 4800: 74 72 79 3b 0d 0a 09 44 57 4f 52 44 20 20 20 20 try;...DWORD 4810: 20 20 20 20 20 20 20 63 45 78 74 65 6e 73 69 6f cExtensio 4820: 6e 3b 0d 0a 09 50 43 45 52 54 5f 45 58 54 45 4e n;...PCERT_EXTEN 4830: 53 49 4f 4e 20 72 67 45 78 74 65 6e 73 69 6f 6e SION rgExtension 4840: 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 20 43 52 4c 5f ;..}..alias CRL_ 4850: 49 4e 46 4f 2a 20 50 43 52 4c 5f 49 4e 46 4f 3b INFO* PCRL_INFO; 4860: 0d 0a 0d 0a 73 74 72 75 63 74 20 43 52 4c 5f 43 ....struct CRL_C 4870: 4f 4e 54 45 58 54 20 7b 0d 0a 09 44 57 4f 52 44 ONTEXT {...DWORD 4880: 20 20 20 20 20 20 64 77 43 65 72 74 45 6e 63 6f dwCertEnco 4890: 64 69 6e 67 54 79 70 65 3b 0d 0a 09 42 59 54 45 dingType;...BYTE 48a0: 2a 20 20 20 20 20 20 70 62 43 72 6c 45 6e 63 6f * pbCrlEnco 48b0: 64 65 64 3b 0d 0a 09 44 57 4f 52 44 20 20 20 20 ded;...DWORD 48c0: 20 20 63 62 43 72 6c 45 6e 63 6f 64 65 64 3b 0d cbCrlEncoded;. 48d0: 0a 09 50 43 52 4c 5f 49 4e 46 4f 20 20 70 43 72 ..PCRL_INFO pCr 48e0: 6c 49 6e 66 6f 3b 0d 0a 09 48 43 45 52 54 53 54 lInfo;...HCERTST 48f0: 4f 52 45 20 68 43 65 72 74 53 74 6f 72 65 3b 0d ORE hCertStore;. 4900: 0a 7d 0d 0a 61 6c 69 61 73 20 43 52 4c 5f 43 4f .}..alias CRL_CO 4910: 4e 54 45 58 54 2a 20 20 20 20 20 20 20 20 50 43 NTEXT* PC 4920: 52 4c 5f 43 4f 4e 54 45 58 54 3b 0d 0a 61 6c 69 RL_CONTEXT;..ali 4930: 61 73 20 63 6f 6e 73 74 28 43 52 4c 5f 43 4f 4e as const(CRL_CON 4940: 54 45 58 54 29 2a 20 50 43 43 52 4c 5f 43 4f 4e TEXT)* PCCRL_CON 4950: 54 45 58 54 3b 0d 0a 0d 0a 73 74 72 75 63 74 20 TEXT;....struct 4960: 43 45 52 54 5f 52 45 56 4f 43 41 54 49 4f 4e 5f CERT_REVOCATION_ 4970: 43 52 4c 5f 49 4e 46 4f 20 7b 0d 0a 09 44 57 4f CRL_INFO {...DWO 4980: 52 44 20 20 20 20 20 20 20 20 20 63 62 53 69 7a RD cbSiz 4990: 65 20 3d 20 43 45 52 54 5f 52 45 56 4f 43 41 54 e = CERT_REVOCAT 49a0: 49 4f 4e 5f 43 52 4c 5f 49 4e 46 4f 2e 73 69 7a ION_CRL_INFO.siz 49b0: 65 6f 66 3b 0d 0a 09 50 43 43 52 4c 5f 43 4f 4e eof;...PCCRL_CON 49c0: 54 45 58 54 20 70 42 61 73 65 43 52 4c 43 6f 6e TEXT pBaseCRLCon 49d0: 74 65 78 74 3b 0d 0a 09 50 43 43 52 4c 5f 43 4f text;...PCCRL_CO 49e0: 4e 54 45 58 54 20 70 44 65 6c 74 61 43 52 4c 43 NTEXT pDeltaCRLC 49f0: 6f 6e 74 65 78 74 3b 0d 0a 09 50 43 52 4c 5f 45 ontext;...PCRL_E 4a00: 4e 54 52 59 20 20 20 20 70 43 72 6c 45 6e 74 72 NTRY pCrlEntr 4a10: 79 3b 0d 0a 09 42 4f 4f 4c 20 20 20 20 20 20 20 y;...BOOL 4a20: 20 20 20 66 44 65 6c 74 61 43 72 6c 45 6e 74 72 fDeltaCrlEntr 4a30: 79 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 20 43 45 52 y;..}..alias CER 4a40: 54 5f 52 45 56 4f 43 41 54 49 4f 4e 5f 43 52 4c T_REVOCATION_CRL 4a50: 5f 49 4e 46 4f 2a 20 50 43 45 52 54 5f 52 45 56 _INFO* PCERT_REV 4a60: 4f 43 41 54 49 4f 4e 5f 43 52 4c 5f 49 4e 46 4f OCATION_CRL_INFO 4a70: 3b 0d 0a 0d 0a 73 74 72 75 63 74 20 43 45 52 54 ;....struct CERT 4a80: 5f 52 45 56 4f 43 41 54 49 4f 4e 5f 49 4e 46 4f _REVOCATION_INFO 4a90: 20 7b 0d 0a 09 44 57 4f 52 44 20 20 63 62 53 69 {...DWORD cbSi 4aa0: 7a 65 20 3d 20 43 45 52 54 5f 52 45 56 4f 43 41 ze = CERT_REVOCA 4ab0: 54 49 4f 4e 5f 49 4e 46 4f 2e 73 69 7a 65 6f 66 TION_INFO.sizeof 4ac0: 3b 0d 0a 09 44 57 4f 52 44 20 20 64 77 52 65 76 ;...DWORD dwRev 4ad0: 6f 63 61 74 69 6f 6e 52 65 73 75 6c 74 3b 0d 0a ocationResult;.. 4ae0: 09 4c 50 43 53 54 52 20 70 73 7a 52 65 76 6f 63 .LPCSTR pszRevoc 4af0: 61 74 69 6f 6e 4f 69 64 3b 0d 0a 09 4c 50 56 4f ationOid;...LPVO 4b00: 49 44 20 70 76 4f 69 64 53 70 65 63 69 66 69 63 ID pvOidSpecific 4b10: 49 6e 66 6f 3b 0d 0a 09 42 4f 4f 4c 20 20 20 66 Info;...BOOL f 4b20: 48 61 73 46 72 65 73 68 6e 65 73 73 54 69 6d 65 HasFreshnessTime 4b30: 3b 0d 0a 09 44 57 4f 52 44 20 20 64 77 46 72 65 ;...DWORD dwFre 4b40: 73 68 6e 65 73 73 54 69 6d 65 3b 0d 0a 09 50 43 shnessTime;...PC 4b50: 45 52 54 5f 52 45 56 4f 43 41 54 49 4f 4e 5f 43 ERT_REVOCATION_C 4b60: 52 4c 5f 49 4e 46 4f 20 70 43 72 6c 49 6e 66 6f RL_INFO pCrlInfo 4b70: 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 20 43 45 52 54 ;..}..alias CERT 4b80: 5f 52 45 56 4f 43 41 54 49 4f 4e 5f 49 4e 46 4f _REVOCATION_INFO 4b90: 2a 20 50 43 45 52 54 5f 52 45 56 4f 43 41 54 49 * PCERT_REVOCATI 4ba0: 4f 4e 5f 49 4e 46 4f 3b 0d 0a 0d 0a 2f 2a 20 23 ON_INFO;..../* # 4bb0: 69 66 20 28 5f 57 49 4e 33 32 5f 57 49 4e 4e 54 if (_WIN32_WINNT 4bc0: 3e 3d 30 78 35 30 30 29 20 2a 2f 0d 0a 73 74 72 >=0x500) */..str 4bd0: 75 63 74 20 43 45 52 54 5f 43 48 41 49 4e 5f 45 uct CERT_CHAIN_E 4be0: 4c 45 4d 45 4e 54 20 7b 0d 0a 09 44 57 4f 52 44 LEMENT {...DWORD 4bf0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4c00: 20 63 62 53 69 7a 65 20 3d 20 43 45 52 54 5f 43 cbSize = CERT_C 4c10: 48 41 49 4e 5f 45 4c 45 4d 45 4e 54 2e 73 69 7a HAIN_ELEMENT.siz 4c20: 65 6f 66 3b 0d 0a 09 50 43 43 45 52 54 5f 43 4f eof;...PCCERT_CO 4c30: 4e 54 45 58 54 20 20 20 20 20 20 20 20 70 43 65 NTEXT pCe 4c40: 72 74 43 6f 6e 74 65 78 74 3b 0d 0a 09 43 45 52 rtContext;...CER 4c50: 54 5f 54 52 55 53 54 5f 53 54 41 54 55 53 20 20 T_TRUST_STATUS 4c60: 20 20 20 54 72 75 73 74 53 74 61 74 75 73 3b 0d TrustStatus;. 4c70: 0a 09 50 43 45 52 54 5f 52 45 56 4f 43 41 54 49 ..PCERT_REVOCATI 4c80: 4f 4e 5f 49 4e 46 4f 20 70 52 65 76 6f 63 61 74 ON_INFO pRevocat 4c90: 69 6f 6e 49 6e 66 6f 3b 0d 0a 09 50 43 45 52 54 ionInfo;...PCERT 4ca0: 5f 45 4e 48 4b 45 59 5f 55 53 41 47 45 20 20 20 _ENHKEY_USAGE 4cb0: 20 70 49 73 73 75 61 6e 63 65 55 73 61 67 65 3b pIssuanceUsage; 4cc0: 0d 0a 09 50 43 45 52 54 5f 45 4e 48 4b 45 59 5f ...PCERT_ENHKEY_ 4cd0: 55 53 41 47 45 20 20 20 20 70 41 70 70 6c 69 63 USAGE pApplic 4ce0: 61 74 69 6f 6e 55 73 61 67 65 3b 0d 0a 7d 0d 0a ationUsage;..}.. 4cf0: 61 6c 69 61 73 20 43 45 52 54 5f 43 48 41 49 4e alias CERT_CHAIN 4d00: 5f 45 4c 45 4d 45 4e 54 2a 20 50 43 45 52 54 5f _ELEMENT* PCERT_ 4d10: 43 48 41 49 4e 5f 45 4c 45 4d 45 4e 54 3b 0d 0a CHAIN_ELEMENT;.. 4d20: 2f 2a 20 23 65 6e 64 69 66 20 2a 2f 0d 0a 0d 0a /* #endif */.... 4d30: 73 74 72 75 63 74 20 43 52 59 50 54 5f 41 54 54 struct CRYPT_ATT 4d40: 52 49 42 55 54 45 20 7b 0d 0a 09 4c 50 53 54 52 RIBUTE {...LPSTR 4d50: 20 20 20 20 20 20 20 20 20 20 20 20 70 73 7a 4f pszO 4d60: 62 6a 49 64 3b 0d 0a 09 44 57 4f 52 44 20 20 20 bjId;...DWORD 4d70: 20 20 20 20 20 20 20 20 20 63 56 61 6c 75 65 3b cValue; 4d80: 0d 0a 09 50 43 52 59 50 54 5f 41 54 54 52 5f 42 ...PCRYPT_ATTR_B 4d90: 4c 4f 42 20 72 67 56 61 6c 75 65 3b 0d 0a 7d 0d LOB rgValue;..}. 4da0: 0a 61 6c 69 61 73 20 43 52 59 50 54 5f 41 54 54 .alias CRYPT_ATT 4db0: 52 49 42 55 54 45 2a 20 50 43 52 59 50 54 5f 41 RIBUTE* PCRYPT_A 4dc0: 54 54 52 49 42 55 54 45 3b 0d 0a 0d 0a 73 74 72 TTRIBUTE;....str 4dd0: 75 63 74 20 43 54 4c 5f 45 4e 54 52 59 20 7b 0d uct CTL_ENTRY {. 4de0: 0a 09 43 52 59 50 54 5f 44 41 54 41 5f 42 4c 4f ..CRYPT_DATA_BLO 4df0: 42 20 20 53 75 62 6a 65 63 74 49 64 65 6e 74 69 B SubjectIdenti 4e00: 66 69 65 72 3b 0d 0a 09 44 57 4f 52 44 20 20 20 fier;...DWORD 4e10: 20 20 20 20 20 20 20 20 20 63 41 74 74 72 69 62 cAttrib 4e20: 75 74 65 3b 0d 0a 09 50 43 52 59 50 54 5f 41 54 ute;...PCRYPT_AT 4e30: 54 52 49 42 55 54 45 20 72 67 41 74 74 72 69 62 TRIBUTE rgAttrib 4e40: 75 74 65 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 20 43 ute;..}..alias C 4e50: 54 4c 5f 45 4e 54 52 59 2a 20 50 43 54 4c 5f 45 TL_ENTRY* PCTL_E 4e60: 4e 54 52 59 3b 0d 0a 0d 0a 73 74 72 75 63 74 20 NTRY;....struct 4e70: 43 54 4c 5f 49 4e 46 4f 20 7b 0d 0a 09 44 57 4f CTL_INFO {...DWO 4e80: 52 44 20 20 20 20 20 20 20 20 20 20 20 20 20 20 RD 4e90: 64 77 56 65 72 73 69 6f 6e 3b 0d 0a 09 43 54 4c dwVersion;...CTL 4ea0: 5f 55 53 41 47 45 20 20 20 20 20 20 20 20 20 20 _USAGE 4eb0: 53 75 62 6a 65 63 74 55 73 61 67 65 3b 0d 0a 09 SubjectUsage;... 4ec0: 43 52 59 50 54 5f 44 41 54 41 5f 42 4c 4f 42 20 CRYPT_DATA_BLOB 4ed0: 20 20 20 4c 69 73 74 49 64 65 6e 74 69 66 69 65 ListIdentifie 4ee0: 72 3b 0d 0a 09 43 52 59 50 54 5f 49 4e 54 45 47 r;...CRYPT_INTEG 4ef0: 45 52 5f 42 4c 4f 42 20 53 65 71 75 65 6e 63 65 ER_BLOB Sequence 4f00: 4e 75 6d 62 65 72 3b 0d 0a 09 46 49 4c 45 54 49 Number;...FILETI 4f10: 4d 45 20 20 20 20 20 20 20 20 20 20 20 54 68 69 ME Thi 4f20: 73 55 70 64 61 74 65 3b 0d 0a 09 46 49 4c 45 54 sUpdate;...FILET 4f30: 49 4d 45 20 20 20 20 20 20 20 20 20 20 20 4e 65 IME Ne 4f40: 78 74 55 70 64 61 74 65 3b 0d 0a 09 43 52 59 50 xtUpdate;...CRYP 4f50: 54 5f 41 4c 47 4f 52 49 54 48 4d 5f 49 44 45 4e T_ALGORITHM_IDEN 4f60: 54 49 46 49 45 52 20 53 75 62 6a 65 63 74 41 6c TIFIER SubjectAl 4f70: 67 6f 72 69 74 68 6d 3b 0d 0a 09 44 57 4f 52 44 gorithm;...DWORD 4f80: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 43 cC 4f90: 54 4c 45 6e 74 72 79 3b 0d 0a 09 50 43 54 4c 5f TLEntry;...PCTL_ 4fa0: 45 4e 54 52 59 20 20 20 20 20 20 20 20 20 72 67 ENTRY rg 4fb0: 43 54 4c 45 6e 74 72 79 3b 0d 0a 09 44 57 4f 52 CTLEntry;...DWOR 4fc0: 44 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 D c 4fd0: 45 78 74 65 6e 73 69 6f 6e 3b 0d 0a 09 50 43 45 Extension;...PCE 4fe0: 52 54 5f 45 58 54 45 4e 53 49 4f 4e 20 20 20 20 RT_EXTENSION 4ff0: 72 67 45 78 74 65 6e 73 69 6f 6e 3b 0d 0a 7d 0d rgExtension;..}. 5000: 0a 61 6c 69 61 73 20 43 54 4c 5f 49 4e 46 4f 2a .alias CTL_INFO* 5010: 20 50 43 54 4c 5f 49 4e 46 4f 3b 0d 0a 0d 0a 73 PCTL_INFO;....s 5020: 74 72 75 63 74 20 43 54 4c 5f 43 4f 4e 54 45 58 truct CTL_CONTEX 5030: 54 20 7b 0d 0a 09 44 57 4f 52 44 20 20 20 20 20 T {...DWORD 5040: 20 64 77 4d 73 67 41 6e 64 43 65 72 74 45 6e 63 dwMsgAndCertEnc 5050: 6f 64 69 6e 67 54 79 70 65 3b 0d 0a 09 42 59 54 odingType;...BYT 5060: 45 2a 20 20 20 20 20 20 70 62 43 74 6c 45 6e 63 E* pbCtlEnc 5070: 6f 64 65 64 3b 0d 0a 09 44 57 4f 52 44 20 20 20 oded;...DWORD 5080: 20 20 20 63 62 43 74 6c 45 6e 63 6f 64 65 64 3b cbCtlEncoded; 5090: 0d 0a 09 50 43 54 4c 5f 49 4e 46 4f 20 20 70 43 ...PCTL_INFO pC 50a0: 74 6c 49 6e 66 6f 3b 0d 0a 09 48 43 45 52 54 53 tlInfo;...HCERTS 50b0: 54 4f 52 45 20 68 43 65 72 74 53 74 6f 72 65 3b TORE hCertStore; 50c0: 0d 0a 09 48 43 52 59 50 54 4d 53 47 20 20 68 43 ...HCRYPTMSG hC 50d0: 72 79 70 74 4d 73 67 3b 0d 0a 09 42 59 54 45 2a ryptMsg;...BYTE* 50e0: 20 20 20 20 20 20 70 62 43 74 6c 43 6f 6e 74 65 pbCtlConte 50f0: 6e 74 3b 0d 0a 09 44 57 4f 52 44 20 20 20 20 20 nt;...DWORD 5100: 20 63 62 43 74 6c 43 6f 6e 74 65 6e 74 3b 0d 0a cbCtlContent;.. 5110: 7d 0d 0a 61 6c 69 61 73 20 43 54 4c 5f 43 4f 4e }..alias CTL_CON 5120: 54 45 58 54 2a 20 20 20 20 20 20 20 20 50 43 54 TEXT* PCT 5130: 4c 5f 43 4f 4e 54 45 58 54 3b 0d 0a 61 6c 69 61 L_CONTEXT;..alia 5140: 73 20 63 6f 6e 73 74 28 43 54 4c 5f 43 4f 4e 54 s const(CTL_CONT 5150: 45 58 54 29 2a 20 50 43 43 54 4c 5f 43 4f 4e 54 EXT)* PCCTL_CONT 5160: 45 58 54 3b 0d 0a 0d 0a 73 74 72 75 63 74 20 43 EXT;....struct C 5170: 45 52 54 5f 54 52 55 53 54 5f 4c 49 53 54 5f 49 ERT_TRUST_LIST_I 5180: 4e 46 4f 20 7b 0d 0a 09 44 57 4f 52 44 20 20 20 NFO {...DWORD 5190: 20 20 20 20 20 20 63 62 53 69 7a 65 20 3d 20 43 cbSize = C 51a0: 45 52 54 5f 54 52 55 53 54 5f 4c 49 53 54 5f 49 ERT_TRUST_LIST_I 51b0: 4e 46 4f 2e 73 69 7a 65 6f 66 3b 0d 0a 09 50 43 NFO.sizeof;...PC 51c0: 54 4c 5f 45 4e 54 52 59 20 20 20 20 70 43 74 6c TL_ENTRY pCtl 51d0: 45 6e 74 72 79 3b 0d 0a 09 50 43 43 54 4c 5f 43 Entry;...PCCTL_C 51e0: 4f 4e 54 45 58 54 20 70 43 74 6c 43 6f 6e 74 65 ONTEXT pCtlConte 51f0: 78 74 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 20 43 45 xt;..}..alias CE 5200: 52 54 5f 54 52 55 53 54 5f 4c 49 53 54 5f 49 4e RT_TRUST_LIST_IN 5210: 46 4f 2a 20 50 43 45 52 54 5f 54 52 55 53 54 5f FO* PCERT_TRUST_ 5220: 4c 49 53 54 5f 49 4e 46 4f 3b 0d 0a 0d 0a 73 74 LIST_INFO;....st 5230: 72 75 63 74 20 43 45 52 54 5f 53 49 4d 50 4c 45 ruct CERT_SIMPLE 5240: 5f 43 48 41 49 4e 20 7b 0d 0a 09 44 57 4f 52 44 _CHAIN {...DWORD 5250: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5260: 20 63 62 53 69 7a 65 20 3d 20 43 45 52 54 5f 53 cbSize = CERT_S 5270: 49 4d 50 4c 45 5f 43 48 41 49 4e 2e 73 69 7a 65 IMPLE_CHAIN.size 5280: 6f 66 3b 0d 0a 09 43 45 52 54 5f 54 52 55 53 54 of;...CERT_TRUST 5290: 5f 53 54 41 54 55 53 20 20 20 20 20 54 72 75 73 _STATUS Trus 52a0: 74 53 74 61 74 75 73 3b 0d 0a 09 44 57 4f 52 44 tStatus;...DWORD 52b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 52c0: 20 63 45 6c 65 6d 65 6e 74 3b 0d 0a 09 50 43 45 cElement;...PCE 52d0: 52 54 5f 43 48 41 49 4e 5f 45 4c 45 4d 45 4e 54 RT_CHAIN_ELEMENT 52e0: 2a 20 20 72 67 70 45 6c 65 6d 65 6e 74 3b 0d 0a * rgpElement;.. 52f0: 09 50 43 45 52 54 5f 54 52 55 53 54 5f 4c 49 53 .PCERT_TRUST_LIS 5300: 54 5f 49 4e 46 4f 20 70 54 72 75 73 74 4c 69 73 T_INFO pTrustLis 5310: 74 49 6e 66 6f 3b 0d 0a 09 42 4f 4f 4c 20 20 20 tInfo;...BOOL 5320: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 f 5330: 48 61 73 52 65 76 6f 63 61 74 69 6f 6e 46 72 65 HasRevocationFre 5340: 73 68 6e 65 73 73 54 69 6d 65 3b 0d 0a 09 44 57 shnessTime;...DW 5350: 4f 52 44 20 20 20 20 20 20 20 20 20 20 20 20 20 ORD 5360: 20 20 20 20 64 77 52 65 76 6f 63 61 74 69 6f 6e dwRevocation 5370: 46 72 65 73 68 6e 65 73 73 54 69 6d 65 3b 0d 0a FreshnessTime;.. 5380: 7d 0d 0a 61 6c 69 61 73 20 43 45 52 54 5f 53 49 }..alias CERT_SI 5390: 4d 50 4c 45 5f 43 48 41 49 4e 2a 20 50 43 45 52 MPLE_CHAIN* PCER 53a0: 54 5f 53 49 4d 50 4c 45 5f 43 48 41 49 4e 3b 0d T_SIMPLE_CHAIN;. 53b0: 0a 0d 0a 2f 2a 20 23 69 66 20 28 5f 57 49 4e 33 .../* #if (_WIN3 53c0: 32 5f 57 49 4e 4e 54 3e 3d 30 78 35 30 30 29 20 2_WINNT>=0x500) 53d0: 2a 2f 0d 0a 61 6c 69 61 73 20 63 6f 6e 73 74 28 */..alias const( 53e0: 43 45 52 54 5f 43 48 41 49 4e 5f 43 4f 4e 54 45 CERT_CHAIN_CONTE 53f0: 58 54 29 2a 20 50 43 43 45 52 54 5f 43 48 41 49 XT)* PCCERT_CHAI 5400: 4e 5f 43 4f 4e 54 45 58 54 3b 0d 0a 73 74 72 75 N_CONTEXT;..stru 5410: 63 74 20 43 45 52 54 5f 43 48 41 49 4e 5f 43 4f ct CERT_CHAIN_CO 5420: 4e 54 45 58 54 20 7b 0d 0a 09 44 57 4f 52 44 20 NTEXT {...DWORD 5430: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5440: 63 62 53 69 7a 65 20 3d 20 43 45 52 54 5f 43 48 cbSize = CERT_CH 5450: 41 49 4e 5f 43 4f 4e 54 45 58 54 2e 73 69 7a 65 AIN_CONTEXT.size 5460: 6f 66 3b 0d 0a 09 43 45 52 54 5f 54 52 55 53 54 of;...CERT_TRUST 5470: 5f 53 54 41 54 55 53 20 20 20 20 20 54 72 75 73 _STATUS Trus 5480: 74 53 74 61 74 75 73 3b 0d 0a 09 44 57 4f 52 44 tStatus;...DWORD 5490: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 54a0: 20 63 43 68 61 69 6e 3b 0d 0a 09 50 43 45 52 54 cChain;...PCERT 54b0: 5f 53 49 4d 50 4c 45 5f 43 48 41 49 4e 2a 20 20 _SIMPLE_CHAIN* 54c0: 20 72 67 70 43 68 61 69 6e 3b 0d 0a 09 44 57 4f rgpChain;...DWO 54d0: 52 44 20 20 20 20 20 20 20 20 20 20 20 20 20 20 RD 54e0: 20 20 20 63 4c 6f 77 65 72 51 75 61 6c 69 74 79 cLowerQuality 54f0: 43 68 61 69 6e 43 6f 6e 74 65 78 74 3b 0d 0a 09 ChainContext;... 5500: 50 43 43 45 52 54 5f 43 48 41 49 4e 5f 43 4f 4e PCCERT_CHAIN_CON 5510: 54 45 58 54 2a 20 72 67 70 4c 6f 77 65 72 51 75 TEXT* rgpLowerQu 5520: 61 6c 69 74 79 43 68 61 69 6e 43 6f 6e 74 65 78 alityChainContex 5530: 74 3b 0d 0a 09 42 4f 4f 4c 20 20 20 20 20 20 20 t;...BOOL 5540: 20 20 20 20 20 20 20 20 20 20 20 66 48 61 73 52 fHasR 5550: 65 76 6f 63 61 74 69 6f 6e 46 72 65 73 68 6e 65 evocationFreshne 5560: 73 73 54 69 6d 65 3b 0d 0a 09 44 57 4f 52 44 20 ssTime;...DWORD 5570: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5580: 64 77 52 65 76 6f 63 61 74 69 6f 6e 46 72 65 73 dwRevocationFres 5590: 68 6e 65 73 73 54 69 6d 65 3b 0d 0a 7d 0d 0a 61 hnessTime;..}..a 55a0: 6c 69 61 73 20 43 45 52 54 5f 43 48 41 49 4e 5f lias CERT_CHAIN_ 55b0: 43 4f 4e 54 45 58 54 2a 20 50 43 45 52 54 5f 43 CONTEXT* PCERT_C 55c0: 48 41 49 4e 5f 43 4f 4e 54 45 58 54 3b 0d 0a 2f HAIN_CONTEXT;../ 55d0: 2a 20 23 65 6e 64 69 66 20 2a 2f 0d 0a 0d 0a 73 * #endif */....s 55e0: 74 72 75 63 74 20 50 52 4f 56 5f 45 4e 55 4d 41 truct PROV_ENUMA 55f0: 4c 47 53 20 7b 0d 0a 09 41 4c 47 5f 49 44 20 20 LGS {...ALG_ID 5600: 20 61 69 41 6c 67 69 64 3b 0d 0a 09 44 57 4f 52 aiAlgid;...DWOR 5610: 44 20 20 20 20 64 77 42 69 74 4c 65 6e 3b 0d 0a D dwBitLen;.. 5620: 09 44 57 4f 52 44 20 20 20 20 64 77 4e 61 6d 65 .DWORD dwName 5630: 4c 65 6e 3b 0d 0a 09 43 48 41 52 5b 32 30 5d 20 Len;...CHAR[20] 5640: 73 7a 4e 61 6d 65 3b 0d 0a 7d 0d 0a 0d 0a 73 74 szName;..}....st 5650: 72 75 63 74 20 50 55 42 4c 49 43 4b 45 59 53 54 ruct PUBLICKEYST 5660: 52 55 43 20 7b 0d 0a 09 42 59 54 45 20 20 20 62 RUC {...BYTE b 5670: 54 79 70 65 3b 0d 0a 09 42 59 54 45 20 20 20 62 Type;...BYTE b 5680: 56 65 72 73 69 6f 6e 3b 0d 0a 09 57 4f 52 44 20 Version;...WORD 5690: 20 20 72 65 73 65 72 76 65 64 3b 0d 0a 09 41 4c reserved;...AL 56a0: 47 5f 49 44 20 61 69 4b 65 79 41 6c 67 3b 0d 0a G_ID aiKeyAlg;.. 56b0: 7d 0d 0a 61 6c 69 61 73 20 50 55 42 4c 49 43 4b }..alias PUBLICK 56c0: 45 59 53 54 52 55 43 20 42 4c 4f 42 48 45 41 44 EYSTRUC BLOBHEAD 56d0: 45 52 3b 0d 0a 0d 0a 73 74 72 75 63 74 20 52 53 ER;....struct RS 56e0: 41 50 55 42 4b 45 59 20 7b 0d 0a 09 44 57 4f 52 APUBKEY {...DWOR 56f0: 44 20 6d 61 67 69 63 3b 0d 0a 09 44 57 4f 52 44 D magic;...DWORD 5700: 20 62 69 74 6c 65 6e 3b 0d 0a 09 44 57 4f 52 44 bitlen;...DWORD 5710: 20 70 75 62 65 78 70 3b 0d 0a 7d 0d 0a 0d 0a 73 pubexp;..}....s 5720: 74 72 75 63 74 20 48 4d 41 43 5f 49 4e 46 4f 20 truct HMAC_INFO 5730: 7b 0d 0a 09 41 4c 47 5f 49 44 20 48 61 73 68 41 {...ALG_ID HashA 5740: 6c 67 69 64 3b 0d 0a 09 42 59 54 45 2a 20 20 70 lgid;...BYTE* p 5750: 62 49 6e 6e 65 72 53 74 72 69 6e 67 3b 0d 0a 09 bInnerString;... 5760: 44 57 4f 52 44 20 20 63 62 49 6e 6e 65 72 53 74 DWORD cbInnerSt 5770: 72 69 6e 67 3b 0d 0a 09 42 59 54 45 2a 20 20 70 ring;...BYTE* p 5780: 62 4f 75 74 65 72 53 74 72 69 6e 67 3b 0d 0a 09 bOuterString;... 5790: 44 57 4f 52 44 20 20 63 62 4f 75 74 65 72 53 74 DWORD cbOuterSt 57a0: 72 69 6e 67 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 20 ring;..}..alias 57b0: 48 4d 41 43 5f 49 4e 46 4f 2a 20 50 48 4d 41 43 HMAC_INFO* PHMAC 57c0: 5f 49 4e 46 4f 3b 0d 0a 0d 0a 65 78 74 65 72 6e _INFO;....extern 57d0: 20 28 57 69 6e 64 6f 77 73 29 20 7b 0d 0a 09 42 (Windows) {...B 57e0: 4f 4f 4c 20 43 65 72 74 43 6c 6f 73 65 53 74 6f OOL CertCloseSto 57f0: 72 65 28 48 43 45 52 54 53 54 4f 52 45 2c 20 44 re(HCERTSTORE, D 5800: 57 4f 52 44 29 3b 0d 0a 09 42 4f 4f 4c 20 43 65 WORD);...BOOL Ce 5810: 72 74 47 65 74 43 65 72 74 69 66 69 63 61 74 65 rtGetCertificate 5820: 43 68 61 69 6e 28 48 43 45 52 54 43 48 41 49 4e Chain(HCERTCHAIN 5830: 45 4e 47 49 4e 45 2c 20 50 43 43 45 52 54 5f 43 ENGINE, PCCERT_C 5840: 4f 4e 54 45 58 54 2c 20 4c 50 46 49 4c 45 54 49 ONTEXT, LPFILETI 5850: 4d 45 2c 0d 0a 09 20 20 48 43 45 52 54 53 54 4f ME,... HCERTSTO 5860: 52 45 2c 20 50 43 45 52 54 5f 43 48 41 49 4e 5f RE, PCERT_CHAIN_ 5870: 50 41 52 41 2c 20 44 57 4f 52 44 2c 20 4c 50 56 PARA, DWORD, LPV 5880: 4f 49 44 2c 20 50 43 43 45 52 54 5f 43 48 41 49 OID, PCCERT_CHAI 5890: 4e 5f 43 4f 4e 54 45 58 54 2a 29 3b 0d 0a 09 42 N_CONTEXT*);...B 58a0: 4f 4f 4c 20 43 65 72 74 56 65 72 69 66 79 43 65 OOL CertVerifyCe 58b0: 72 74 69 66 69 63 61 74 65 43 68 61 69 6e 50 6f rtificateChainPo 58c0: 6c 69 63 79 28 4c 50 43 53 54 52 2c 20 50 43 43 licy(LPCSTR, PCC 58d0: 45 52 54 5f 43 48 41 49 4e 5f 43 4f 4e 54 45 58 ERT_CHAIN_CONTEX 58e0: 54 2c 0d 0a 09 20 20 50 43 45 52 54 5f 43 48 41 T,... PCERT_CHA 58f0: 49 4e 5f 50 4f 4c 49 43 59 5f 50 41 52 41 2c 20 IN_POLICY_PARA, 5900: 50 43 45 52 54 5f 43 48 41 49 4e 5f 50 4f 4c 49 PCERT_CHAIN_POLI 5910: 43 59 5f 53 54 41 54 55 53 29 3b 0d 0a 09 76 6f CY_STATUS);...vo 5920: 69 64 20 43 65 72 74 46 72 65 65 43 65 72 74 69 id CertFreeCerti 5930: 66 69 63 61 74 65 43 68 61 69 6e 28 50 43 43 45 ficateChain(PCCE 5940: 52 54 5f 43 48 41 49 4e 5f 43 4f 4e 54 45 58 54 RT_CHAIN_CONTEXT 5950: 29 3b 0d 0a 09 44 57 4f 52 44 20 43 65 72 74 4e );...DWORD CertN 5960: 61 6d 65 54 6f 53 74 72 41 28 44 57 4f 52 44 2c ameToStrA(DWORD, 5970: 20 50 43 45 52 54 5f 4e 41 4d 45 5f 42 4c 4f 42 PCERT_NAME_BLOB 5980: 2c 20 44 57 4f 52 44 2c 20 4c 50 53 54 52 2c 20 , DWORD, LPSTR, 5990: 44 57 4f 52 44 29 3b 0d 0a 09 44 57 4f 52 44 20 DWORD);...DWORD 59a0: 43 65 72 74 4e 61 6d 65 54 6f 53 74 72 57 28 44 CertNameToStrW(D 59b0: 57 4f 52 44 2c 20 50 43 45 52 54 5f 4e 41 4d 45 WORD, PCERT_NAME 59c0: 5f 42 4c 4f 42 2c 20 44 57 4f 52 44 2c 20 4c 50 _BLOB, DWORD, LP 59d0: 57 53 54 52 2c 20 44 57 4f 52 44 29 3b 0d 0a 09 WSTR, DWORD);... 59e0: 48 43 45 52 54 53 54 4f 52 45 20 43 65 72 74 4f HCERTSTORE CertO 59f0: 70 65 6e 53 79 73 74 65 6d 53 74 6f 72 65 41 28 penSystemStoreA( 5a00: 48 43 52 59 50 54 50 52 4f 56 2c 20 4c 50 43 53 HCRYPTPROV, LPCS 5a10: 54 52 29 3b 0d 0a 09 48 43 45 52 54 53 54 4f 52 TR);...HCERTSTOR 5a20: 45 20 43 65 72 74 4f 70 65 6e 53 79 73 74 65 6d E CertOpenSystem 5a30: 53 74 6f 72 65 57 28 48 43 52 59 50 54 50 52 4f StoreW(HCRYPTPRO 5a40: 56 2c 20 4c 50 43 57 53 54 52 29 3b 0d 0a 09 48 V, LPCWSTR);...H 5a50: 43 45 52 54 53 54 4f 52 45 20 43 65 72 74 4f 70 CERTSTORE CertOp 5a60: 65 6e 53 74 6f 72 65 28 4c 50 43 53 54 52 2c 20 enStore(LPCSTR, 5a70: 44 57 4f 52 44 2c 20 48 43 52 59 50 54 50 52 4f DWORD, HCRYPTPRO 5a80: 56 2c 20 44 57 4f 52 44 2c 20 63 6f 6e 73 74 28 V, DWORD, const( 5a90: 76 6f 69 64 29 2a 29 3b 0d 0a 09 50 43 43 45 52 void)*);...PCCER 5aa0: 54 5f 43 4f 4e 54 45 58 54 20 43 65 72 74 46 69 T_CONTEXT CertFi 5ab0: 6e 64 43 65 72 74 69 66 69 63 61 74 65 49 6e 53 ndCertificateInS 5ac0: 74 6f 72 65 28 48 43 45 52 54 53 54 4f 52 45 2c tore(HCERTSTORE, 5ad0: 20 44 57 4f 52 44 2c 20 44 57 4f 52 44 2c 20 44 DWORD, DWORD, D 5ae0: 57 4f 52 44 2c 0d 0a 09 20 20 63 6f 6e 73 74 28 WORD,... const( 5af0: 76 6f 69 64 29 2a 2c 20 50 43 43 45 52 54 5f 43 void)*, PCCERT_C 5b00: 4f 4e 54 45 58 54 29 3b 0d 0a 09 42 4f 4f 4c 20 ONTEXT);...BOOL 5b10: 43 65 72 74 46 72 65 65 43 65 72 74 69 66 69 63 CertFreeCertific 5b20: 61 74 65 43 6f 6e 74 65 78 74 28 50 43 43 45 52 ateContext(PCCER 5b30: 54 5f 43 4f 4e 54 45 58 54 29 3b 0d 0a 09 50 43 T_CONTEXT);...PC 5b40: 43 45 52 54 5f 43 4f 4e 54 45 58 54 20 43 65 72 CERT_CONTEXT Cer 5b50: 74 47 65 74 49 73 73 75 65 72 43 65 72 74 69 66 tGetIssuerCertif 5b60: 69 63 61 74 65 46 72 6f 6d 53 74 6f 72 65 28 48 icateFromStore(H 5b70: 43 45 52 54 53 54 4f 52 45 2c 0d 0a 09 20 20 50 CERTSTORE,... P 5b80: 43 43 45 52 54 5f 43 4f 4e 54 45 58 54 2c 20 50 CCERT_CONTEXT, P 5b90: 43 43 45 52 54 5f 43 4f 4e 54 45 58 54 2c 20 44 CCERT_CONTEXT, D 5ba0: 57 4f 52 44 2a 29 3b 0d 0a 09 50 43 43 45 52 54 WORD*);...PCCERT 5bb0: 5f 43 48 41 49 4e 5f 43 4f 4e 54 45 58 54 20 43 _CHAIN_CONTEXT C 5bc0: 65 72 74 46 69 6e 64 43 68 61 69 6e 49 6e 53 74 ertFindChainInSt 5bd0: 6f 72 65 28 48 43 45 52 54 53 54 4f 52 45 2c 20 ore(HCERTSTORE, 5be0: 44 57 4f 52 44 2c 20 44 57 4f 52 44 2c 20 44 57 DWORD, DWORD, DW 5bf0: 4f 52 44 2c 0d 0a 09 20 20 63 6f 6e 73 74 28 76 ORD,... const(v 5c00: 6f 69 64 29 2a 2c 20 50 43 43 45 52 54 5f 43 48 oid)*, PCCERT_CH 5c10: 41 49 4e 5f 43 4f 4e 54 45 58 54 29 3b 0d 0a 0d AIN_CONTEXT);... 5c20: 0a 09 42 4f 4f 4c 20 43 72 79 70 74 41 63 71 75 ..BOOL CryptAcqu 5c30: 69 72 65 43 6f 6e 74 65 78 74 41 28 48 43 52 59 ireContextA(HCRY 5c40: 50 54 50 52 4f 56 2a 2c 20 4c 50 43 53 54 52 2c PTPROV*, LPCSTR, 5c50: 20 4c 50 43 53 54 52 2c 20 44 57 4f 52 44 2c 20 LPCSTR, DWORD, 5c60: 44 57 4f 52 44 29 3b 0d 0a 09 42 4f 4f 4c 20 43 DWORD);...BOOL C 5c70: 72 79 70 74 41 63 71 75 69 72 65 43 6f 6e 74 65 ryptAcquireConte 5c80: 78 74 57 28 48 43 52 59 50 54 50 52 4f 56 2a 2c xtW(HCRYPTPROV*, 5c90: 20 4c 50 43 57 53 54 52 2c 20 4c 50 43 57 53 54 LPCWSTR, LPCWST 5ca0: 52 2c 20 44 57 4f 52 44 2c 20 44 57 4f 52 44 29 R, DWORD, DWORD) 5cb0: 3b 0d 0a 09 20 42 4f 4f 4c 20 43 72 79 70 74 43 ;... BOOL CryptC 5cc0: 6f 6e 74 65 78 74 41 64 64 52 65 66 28 48 43 52 ontextAddRef(HCR 5cd0: 59 50 54 50 52 4f 56 2c 20 44 57 4f 52 44 2a 2c YPTPROV, DWORD*, 5ce0: 20 44 57 4f 52 44 29 3b 0d 0a 09 42 4f 4f 4c 20 DWORD);...BOOL 5cf0: 43 72 79 70 74 52 65 6c 65 61 73 65 43 6f 6e 74 CryptReleaseCont 5d00: 65 78 74 28 48 43 52 59 50 54 50 52 4f 56 2c 20 ext(HCRYPTPROV, 5d10: 44 57 4f 52 44 29 3b 0d 0a 09 42 4f 4f 4c 20 43 DWORD);...BOOL C 5d20: 72 79 70 74 47 65 6e 4b 65 79 28 48 43 52 59 50 ryptGenKey(HCRYP 5d30: 54 50 52 4f 56 2c 20 41 4c 47 5f 49 44 2c 20 44 TPROV, ALG_ID, D 5d40: 57 4f 52 44 2c 20 48 43 52 59 50 54 4b 45 59 2a WORD, HCRYPTKEY* 5d50: 29 3b 0d 0a 09 42 4f 4f 4c 20 43 72 79 70 74 44 );...BOOL CryptD 5d60: 65 72 69 76 65 4b 65 79 28 48 43 52 59 50 54 50 eriveKey(HCRYPTP 5d70: 52 4f 56 2c 20 41 4c 47 5f 49 44 2c 20 48 43 52 ROV, ALG_ID, HCR 5d80: 59 50 54 48 41 53 48 2c 20 44 57 4f 52 44 2c 20 YPTHASH, DWORD, 5d90: 48 43 52 59 50 54 4b 45 59 2a 29 3b 0d 0a 09 42 HCRYPTKEY*);...B 5da0: 4f 4f 4c 20 43 72 79 70 74 44 65 73 74 72 6f 79 OOL CryptDestroy 5db0: 4b 65 79 28 48 43 52 59 50 54 4b 45 59 29 3b 0d Key(HCRYPTKEY);. 5dc0: 0a 09 73 74 61 74 69 63 20 69 66 20 28 5f 57 49 ..static if (_WI 5dd0: 4e 33 32 5f 57 49 4e 4e 54 20 3e 3d 20 30 78 35 N32_WINNT >= 0x5 5de0: 30 30 29 20 7b 0d 0a 09 09 42 4f 4f 4c 20 43 72 00) {....BOOL Cr 5df0: 79 70 74 44 75 70 6c 69 63 61 74 65 48 61 73 68 yptDuplicateHash 5e00: 28 48 43 52 59 50 54 48 41 53 48 2c 20 44 57 4f (HCRYPTHASH, DWO 5e10: 52 44 2a 2c 20 44 57 4f 52 44 2c 20 48 43 52 59 RD*, DWORD, HCRY 5e20: 50 54 48 41 53 48 2a 29 3b 0d 0a 09 09 42 4f 4f PTHASH*);....BOO 5e30: 4c 20 43 72 79 70 74 44 75 70 6c 69 63 61 74 65 L CryptDuplicate 5e40: 4b 65 79 28 48 43 52 59 50 54 4b 45 59 2c 20 44 Key(HCRYPTKEY, D 5e50: 57 4f 52 44 2a 2c 20 44 57 4f 52 44 2c 20 48 43 WORD*, DWORD, HC 5e60: 52 59 50 54 4b 45 59 2a 29 3b 0d 0a 09 7d 0d 0a RYPTKEY*);...}.. 5e70: 09 42 4f 4f 4c 20 43 72 79 70 74 53 65 74 4b 65 .BOOL CryptSetKe 5e80: 79 50 61 72 61 6d 28 48 43 52 59 50 54 4b 45 59 yParam(HCRYPTKEY 5e90: 2c 20 44 57 4f 52 44 2c 20 50 42 59 54 45 2c 20 , DWORD, PBYTE, 5ea0: 44 57 4f 52 44 29 3b 0d 0a 09 42 4f 4f 4c 20 43 DWORD);...BOOL C 5eb0: 72 79 70 74 47 65 74 4b 65 79 50 61 72 61 6d 28 ryptGetKeyParam( 5ec0: 48 43 52 59 50 54 4b 45 59 2c 20 44 57 4f 52 44 HCRYPTKEY, DWORD 5ed0: 2c 20 50 42 59 54 45 2c 20 50 44 57 4f 52 44 2c , PBYTE, PDWORD, 5ee0: 20 44 57 4f 52 44 29 3b 0d 0a 09 42 4f 4f 4c 20 DWORD);...BOOL 5ef0: 43 72 79 70 74 53 65 74 48 61 73 68 50 61 72 61 CryptSetHashPara 5f00: 6d 28 48 43 52 59 50 54 48 41 53 48 2c 20 44 57 m(HCRYPTHASH, DW 5f10: 4f 52 44 2c 20 50 42 59 54 45 2c 20 44 57 4f 52 ORD, PBYTE, DWOR 5f20: 44 29 3b 0d 0a 09 42 4f 4f 4c 20 43 72 79 70 74 D);...BOOL Crypt 5f30: 47 65 74 48 61 73 68 50 61 72 61 6d 28 48 43 52 GetHashParam(HCR 5f40: 59 50 54 48 41 53 48 2c 20 44 57 4f 52 44 2c 20 YPTHASH, DWORD, 5f50: 50 42 59 54 45 2c 20 50 44 57 4f 52 44 2c 20 44 PBYTE, PDWORD, D 5f60: 57 4f 52 44 29 3b 0d 0a 09 42 4f 4f 4c 20 43 72 WORD);...BOOL Cr 5f70: 79 70 74 53 65 74 50 72 6f 76 50 61 72 61 6d 28 yptSetProvParam( 5f80: 48 43 52 59 50 54 50 52 4f 56 2c 20 44 57 4f 52 HCRYPTPROV, DWOR 5f90: 44 2c 20 50 42 59 54 45 2c 20 44 57 4f 52 44 29 D, PBYTE, DWORD) 5fa0: 3b 0d 0a 09 42 4f 4f 4c 20 43 72 79 70 74 47 65 ;...BOOL CryptGe 5fb0: 74 50 72 6f 76 50 61 72 61 6d 28 48 43 52 59 50 tProvParam(HCRYP 5fc0: 54 50 52 4f 56 2c 20 44 57 4f 52 44 2c 20 50 42 TPROV, DWORD, PB 5fd0: 59 54 45 2c 20 50 44 57 4f 52 44 2c 20 44 57 4f YTE, PDWORD, DWO 5fe0: 52 44 29 3b 0d 0a 09 42 4f 4f 4c 20 43 72 79 70 RD);...BOOL Cryp 5ff0: 74 47 65 6e 52 61 6e 64 6f 6d 28 48 43 52 59 50 tGenRandom(HCRYP 6000: 54 50 52 4f 56 2c 20 44 57 4f 52 44 2c 20 50 42 TPROV, DWORD, PB 6010: 59 54 45 29 3b 0d 0a 09 42 4f 4f 4c 20 43 72 79 YTE);...BOOL Cry 6020: 70 74 47 65 74 55 73 65 72 4b 65 79 28 48 43 52 ptGetUserKey(HCR 6030: 59 50 54 50 52 4f 56 2c 20 44 57 4f 52 44 2c 20 YPTPROV, DWORD, 6040: 48 43 52 59 50 54 4b 45 59 2a 29 3b 0d 0a 09 42 HCRYPTKEY*);...B 6050: 4f 4f 4c 20 43 72 79 70 74 45 78 70 6f 72 74 4b OOL CryptExportK 6060: 65 79 28 48 43 52 59 50 54 4b 45 59 2c 20 48 43 ey(HCRYPTKEY, HC 6070: 52 59 50 54 4b 45 59 2c 20 44 57 4f 52 44 2c 20 RYPTKEY, DWORD, 6080: 44 57 4f 52 44 2c 20 50 42 59 54 45 2c 20 50 44 DWORD, PBYTE, PD 6090: 57 4f 52 44 29 3b 0d 0a 09 42 4f 4f 4c 20 43 72 WORD);...BOOL Cr 60a0: 79 70 74 49 6d 70 6f 72 74 4b 65 79 28 48 43 52 yptImportKey(HCR 60b0: 59 50 54 50 52 4f 56 2c 20 50 42 59 54 45 2c 20 YPTPROV, PBYTE, 60c0: 44 57 4f 52 44 2c 20 48 43 52 59 50 54 4b 45 59 DWORD, HCRYPTKEY 60d0: 2c 20 44 57 4f 52 44 2c 0d 0a 09 20 20 48 43 52 , DWORD,... HCR 60e0: 59 50 54 4b 45 59 2a 29 3b 0d 0a 09 42 4f 4f 4c YPTKEY*);...BOOL 60f0: 20 43 72 79 70 74 45 6e 63 72 79 70 74 28 48 43 CryptEncrypt(HC 6100: 52 59 50 54 4b 45 59 2c 20 48 43 52 59 50 54 48 RYPTKEY, HCRYPTH 6110: 41 53 48 2c 20 42 4f 4f 4c 2c 20 44 57 4f 52 44 ASH, BOOL, DWORD 6120: 2c 20 50 42 59 54 45 2c 20 50 44 57 4f 52 44 2c , PBYTE, PDWORD, 6130: 0d 0a 09 20 20 44 57 4f 52 44 29 3b 0d 0a 09 42 ... DWORD);...B 6140: 4f 4f 4c 20 43 72 79 70 74 44 65 63 72 79 70 74 OOL CryptDecrypt 6150: 28 48 43 52 59 50 54 4b 45 59 2c 20 48 43 52 59 (HCRYPTKEY, HCRY 6160: 50 54 48 41 53 48 2c 20 42 4f 4f 4c 2c 20 44 57 PTHASH, BOOL, DW 6170: 4f 52 44 2c 20 50 42 59 54 45 2c 20 50 44 57 4f ORD, PBYTE, PDWO 6180: 52 44 29 3b 0d 0a 09 42 4f 4f 4c 20 43 72 79 70 RD);...BOOL Cryp 6190: 74 43 72 65 61 74 65 48 61 73 68 28 48 43 52 59 tCreateHash(HCRY 61a0: 50 54 50 52 4f 56 2c 20 41 4c 47 5f 49 44 2c 20 PTPROV, ALG_ID, 61b0: 48 43 52 59 50 54 4b 45 59 2c 20 44 57 4f 52 44 HCRYPTKEY, DWORD 61c0: 2c 20 48 43 52 59 50 54 48 41 53 48 2a 29 3b 0d , HCRYPTHASH*);. 61d0: 0a 09 42 4f 4f 4c 20 43 72 79 70 74 48 61 73 68 ..BOOL CryptHash 61e0: 44 61 74 61 28 48 43 52 59 50 54 48 41 53 48 2c Data(HCRYPTHASH, 61f0: 20 50 42 59 54 45 2c 20 44 57 4f 52 44 2c 20 44 PBYTE, DWORD, D 6200: 57 4f 52 44 29 3b 0d 0a 09 42 4f 4f 4c 20 43 72 WORD);...BOOL Cr 6210: 79 70 74 48 61 73 68 53 65 73 73 69 6f 6e 4b 65 yptHashSessionKe 6220: 79 28 48 43 52 59 50 54 48 41 53 48 2c 20 48 43 y(HCRYPTHASH, HC 6230: 52 59 50 54 4b 45 59 2c 20 44 57 4f 52 44 29 3b RYPTKEY, DWORD); 6240: 0d 0a 09 42 4f 4f 4c 20 43 72 79 70 74 47 65 74 ...BOOL CryptGet 6250: 48 61 73 68 56 61 6c 75 65 28 48 43 52 59 50 54 HashValue(HCRYPT 6260: 48 41 53 48 2c 20 44 57 4f 52 44 2c 20 50 42 59 HASH, DWORD, PBY 6270: 54 45 2c 20 50 44 57 4f 52 44 29 3b 0d 0a 09 42 TE, PDWORD);...B 6280: 4f 4f 4c 20 43 72 79 70 74 44 65 73 74 72 6f 79 OOL CryptDestroy 6290: 48 61 73 68 28 48 43 52 59 50 54 48 41 53 48 29 Hash(HCRYPTHASH) 62a0: 3b 0d 0a 09 42 4f 4f 4c 20 43 72 79 70 74 53 69 ;...BOOL CryptSi 62b0: 67 6e 48 61 73 68 41 28 48 43 52 59 50 54 48 41 gnHashA(HCRYPTHA 62c0: 53 48 2c 20 44 57 4f 52 44 2c 20 4c 50 43 53 54 SH, DWORD, LPCST 62d0: 52 2c 20 44 57 4f 52 44 2c 20 50 42 59 54 45 2c R, DWORD, PBYTE, 62e0: 20 50 44 57 4f 52 44 29 3b 0d 0a 09 42 4f 4f 4c PDWORD);...BOOL 62f0: 20 43 72 79 70 74 53 69 67 6e 48 61 73 68 57 28 CryptSignHashW( 6300: 48 43 52 59 50 54 48 41 53 48 2c 20 44 57 4f 52 HCRYPTHASH, DWOR 6310: 44 2c 20 4c 50 43 57 53 54 52 2c 20 44 57 4f 52 D, LPCWSTR, DWOR 6320: 44 2c 20 50 42 59 54 45 2c 20 50 44 57 4f 52 44 D, PBYTE, PDWORD 6330: 29 3b 0d 0a 09 42 4f 4f 4c 20 43 72 79 70 74 56 );...BOOL CryptV 6340: 65 72 69 66 79 53 69 67 6e 61 74 75 72 65 41 28 erifySignatureA( 6350: 48 43 52 59 50 54 48 41 53 48 2c 20 50 42 59 54 HCRYPTHASH, PBYT 6360: 45 2c 20 44 57 4f 52 44 2c 20 48 43 52 59 50 54 E, DWORD, HCRYPT 6370: 4b 45 59 2c 20 4c 50 43 53 54 52 2c 0d 0a 09 20 KEY, LPCSTR,... 6380: 20 44 57 4f 52 44 29 3b 0d 0a 09 42 4f 4f 4c 20 DWORD);...BOOL 6390: 43 72 79 70 74 56 65 72 69 66 79 53 69 67 6e 61 CryptVerifySigna 63a0: 74 75 72 65 57 28 48 43 52 59 50 54 48 41 53 48 tureW(HCRYPTHASH 63b0: 2c 20 50 42 59 54 45 2c 20 44 57 4f 52 44 2c 20 , PBYTE, DWORD, 63c0: 48 43 52 59 50 54 4b 45 59 2c 20 4c 50 43 57 53 HCRYPTKEY, LPCWS 63d0: 54 52 2c 0d 0a 09 20 20 44 57 4f 52 44 29 3b 0d TR,... DWORD);. 63e0: 0a 09 42 4f 4f 4c 20 43 72 79 70 74 53 65 74 50 ..BOOL CryptSetP 63f0: 72 6f 76 69 64 65 72 41 28 4c 50 43 53 54 52 2c roviderA(LPCSTR, 6400: 20 44 57 4f 52 44 29 3b 0d 0a 09 42 4f 4f 4c 20 DWORD);...BOOL 6410: 43 72 79 70 74 53 65 74 50 72 6f 76 69 64 65 72 CryptSetProvider 6420: 57 28 4c 50 43 57 53 54 52 2c 20 44 57 4f 52 44 W(LPCWSTR, DWORD 6430: 29 3b 0d 0a 7d 0d 0a 0d 0a 76 65 72 73 69 6f 6e );..}....version 6440: 20 28 55 6e 69 63 6f 64 65 29 20 7b 0d 0a 09 61 (Unicode) {...a 6450: 6c 69 61 73 20 43 65 72 74 4e 61 6d 65 54 6f 53 lias CertNameToS 6460: 74 72 57 20 43 65 72 74 4e 61 6d 65 54 6f 53 74 trW CertNameToSt 6470: 72 3b 0d 0a 09 61 6c 69 61 73 20 43 72 79 70 74 r;...alias Crypt 6480: 41 63 71 75 69 72 65 43 6f 6e 74 65 78 74 57 20 AcquireContextW 6490: 43 72 79 70 74 41 63 71 75 69 72 65 43 6f 6e 74 CryptAcquireCont 64a0: 65 78 74 3b 0d 0a 09 61 6c 69 61 73 20 43 72 79 ext;...alias Cry 64b0: 70 74 53 69 67 6e 48 61 73 68 57 20 43 72 79 70 ptSignHashW Cryp 64c0: 74 53 69 67 6e 48 61 73 68 3b 0d 0a 09 61 6c 69 tSignHash;...ali 64d0: 61 73 20 43 72 79 70 74 56 65 72 69 66 79 53 69 as CryptVerifySi 64e0: 67 6e 61 74 75 72 65 57 20 43 72 79 70 74 56 65 gnatureW CryptVe 64f0: 72 69 66 79 53 69 67 6e 61 74 75 72 65 3b 0d 0a rifySignature;.. 6500: 09 61 6c 69 61 73 20 43 72 79 70 74 53 65 74 50 .alias CryptSetP 6510: 72 6f 76 69 64 65 72 57 20 43 72 79 70 74 53 65 roviderW CryptSe 6520: 74 50 72 6f 76 69 64 65 72 3b 0d 0a 09 61 6c 69 tProvider;...ali 6530: 61 73 20 43 65 72 74 4f 70 65 6e 53 79 73 74 65 as CertOpenSyste 6540: 6d 53 74 6f 72 65 57 20 43 65 72 74 4f 70 65 6e mStoreW CertOpen 6550: 53 79 73 74 65 6d 53 74 6f 72 65 3b 0d 0a 09 2f SystemStore;.../ 6560: 2b 61 6c 69 61 73 20 43 45 52 54 5f 46 49 4e 44 +alias CERT_FIND 6570: 5f 53 55 42 4a 45 43 54 5f 53 54 52 5f 57 20 43 _SUBJECT_STR_W C 6580: 45 52 54 5f 46 49 4e 44 5f 53 55 42 4a 45 43 54 ERT_FIND_SUBJECT 6590: 5f 53 54 52 3b 0d 0a 09 61 6c 69 61 73 20 43 45 _STR;...alias CE 65a0: 52 54 5f 46 49 4e 44 5f 49 53 53 55 45 52 5f 53 RT_FIND_ISSUER_S 65b0: 54 52 5f 57 20 43 45 52 54 5f 46 49 4e 44 5f 49 TR_W CERT_FIND_I 65c0: 53 53 55 45 52 5f 53 54 52 3b 2b 2f 0d 0a 7d 20 SSUER_STR;+/..} 65d0: 65 6c 73 65 20 7b 0d 0a 09 61 6c 69 61 73 20 43 else {...alias C 65e0: 65 72 74 4e 61 6d 65 54 6f 53 74 72 41 20 43 65 ertNameToStrA Ce 65f0: 72 74 4e 61 6d 65 54 6f 53 74 72 3b 0d 0a 09 61 rtNameToStr;...a 6600: 6c 69 61 73 20 43 72 79 70 74 41 63 71 75 69 72 lias CryptAcquir 6610: 65 43 6f 6e 74 65 78 74 41 20 43 72 79 70 74 41 eContextA CryptA 6620: 63 71 75 69 72 65 43 6f 6e 74 65 78 74 3b 0d 0a cquireContext;.. 6630: 09 61 6c 69 61 73 20 43 72 79 70 74 53 69 67 6e .alias CryptSign 6640: 48 61 73 68 41 20 43 72 79 70 74 53 69 67 6e 48 HashA CryptSignH 6650: 61 73 68 3b 0d 0a 09 61 6c 69 61 73 20 43 72 79 ash;...alias Cry 6660: 70 74 56 65 72 69 66 79 53 69 67 6e 61 74 75 72 ptVerifySignatur 6670: 65 41 20 43 72 79 70 74 56 65 72 69 66 79 53 69 eA CryptVerifySi 6680: 67 6e 61 74 75 72 65 3b 0d 0a 09 61 6c 69 61 73 gnature;...alias 6690: 20 43 72 79 70 74 53 65 74 50 72 6f 76 69 64 65 CryptSetProvide 66a0: 72 41 20 43 72 79 70 74 53 65 74 50 72 6f 76 69 rA CryptSetProvi 66b0: 64 65 72 3b 0d 0a 09 61 6c 69 61 73 20 43 65 72 der;...alias Cer 66c0: 74 4f 70 65 6e 53 79 73 74 65 6d 53 74 6f 72 65 tOpenSystemStore 66d0: 41 20 43 65 72 74 4f 70 65 6e 53 79 73 74 65 6d A CertOpenSystem 66e0: 53 74 6f 72 65 3b 0d 0a 09 2f 2b 61 6c 69 61 73 Store;.../+alias 66f0: 20 43 45 52 54 5f 46 49 4e 44 5f 53 55 42 4a 45 CERT_FIND_SUBJE 6700: 43 54 5f 53 54 52 5f 41 20 43 45 52 54 5f 46 49 CT_STR_A CERT_FI 6710: 4e 44 5f 53 55 42 4a 45 43 54 5f 53 54 52 3b 0d ND_SUBJECT_STR;. 6720: 0a 09 61 6c 69 61 73 20 43 45 52 54 5f 46 49 4e ..alias CERT_FIN 6730: 44 5f 49 53 53 55 45 52 5f 53 54 52 5f 41 20 43 D_ISSUER_STR_A C 6740: 45 52 54 5f 46 49 4e 44 5f 49 53 53 55 45 52 5f ERT_FIND_ISSUER_ 6750: 53 54 52 3b 2b 2f 0d 0a 7d 0d 0a STR;+/..}..