1
|
1 /***********************************************************************\
|
|
2 * schannel.d *
|
|
3 * *
|
|
4 * Windows API header module *
|
|
5 * *
|
|
6 * Translated from MinGW Windows headers *
|
|
7 * by Stewart Gordon *
|
|
8 * *
|
|
9 * Placed into public domain *
|
|
10 \***********************************************************************/
|
|
11 module win32.schannel;
|
|
12
|
|
13 import win32.wincrypt;
|
|
14 private import win32.windef;
|
|
15
|
|
16 const DWORD SCHANNEL_CRED_VERSION = 4;
|
|
17 const SCHANNEL_SHUTDOWN = 1;
|
|
18 /* Comment from MinGW
|
|
19 ? Do these belong here or in wincrypt.h
|
|
20 */
|
|
21 enum : DWORD {
|
|
22 AUTHTYPE_CLIENT = 1,
|
|
23 AUTHTYPE_SERVER = 2
|
|
24 }
|
|
25
|
|
26 const DWORD
|
|
27 SP_PROT_PCT1_SERVER = 0x01,
|
|
28 SP_PROT_PCT1_CLIENT = 0x02,
|
|
29 SP_PROT_SSL2_SERVER = 0x04,
|
|
30 SP_PROT_SSL2_CLIENT = 0x08,
|
|
31 SP_PROT_SSL3_SERVER = 0x10,
|
|
32 SP_PROT_SSL3_CLIENT = 0x20,
|
|
33 SP_PROT_TLS1_SERVER = 0x40,
|
|
34 SP_PROT_TLS1_CLIENT = 0x80,
|
|
35 SP_PROT_PCT1 = SP_PROT_PCT1_CLIENT | SP_PROT_PCT1_SERVER,
|
|
36 SP_PROT_TLS1 = SP_PROT_TLS1_CLIENT | SP_PROT_TLS1_SERVER,
|
|
37 SP_PROT_SSL2 = SP_PROT_SSL2_CLIENT | SP_PROT_SSL2_SERVER,
|
|
38 SP_PROT_SSL3 = SP_PROT_SSL3_CLIENT | SP_PROT_SSL3_SERVER;
|
|
39
|
|
40 const DWORD
|
|
41 SCH_CRED_NO_SYSTEM_MAPPER = 0x0002,
|
|
42 SCH_CRED_NO_SERVERNAME_CHECK = 0x0004,
|
|
43 SCH_CRED_MANUAL_CRED_VALIDATION = 0x0008,
|
|
44 SCH_CRED_NO_DEFAULT_CREDS = 0x0010,
|
|
45 SCH_CRED_AUTO_CRED_VALIDATION = 0x0020,
|
|
46 SCH_CRED_USE_DEFAULT_CREDS = 0x0040,
|
|
47 SCH_CRED_REVOCATION_CHECK_END_CERT = 0x0100,
|
|
48 SCH_CRED_REVOCATION_CHECK_CHAIN = 0x0200,
|
|
49 SCH_CRED_REVOCATION_CHECK_CHAIN_EXCLUDE_ROOT = 0x0400,
|
|
50 SCH_CRED_IGNORE_NO_REVOCATION_CHECK = 0x0800,
|
|
51 SCH_CRED_IGNORE_REVOCATION_OFFLINE = 0x1000;
|
|
52
|
|
53 // No definition - presumably an opaque structure
|
|
54 struct _HMAPPER;
|
|
55
|
|
56 struct SCHANNEL_CRED {
|
|
57 DWORD dwVersion = SCHANNEL_CRED_VERSION;
|
|
58 DWORD cCreds;
|
|
59 PCCERT_CONTEXT* paCred;
|
|
60 HCERTSTORE hRootStore;
|
|
61 DWORD cMappers;
|
|
62 _HMAPPER** aphMappers;
|
|
63 DWORD cSupportedAlgs;
|
|
64 ALG_ID* palgSupportedAlgs;
|
|
65 DWORD grbitEnabledProtocols;
|
|
66 DWORD dwMinimumCypherStrength;
|
|
67 DWORD dwMaximumCypherStrength;
|
|
68 DWORD dwSessionLifespan;
|
|
69 DWORD dwFlags;
|
|
70 DWORD reserved;
|
|
71 }
|
|
72 alias SCHANNEL_CRED* PSCHANNEL_CRED;
|
|
73
|
|
74 struct SecPkgCred_SupportedAlgs {
|
|
75 DWORD cSupportedAlgs;
|
|
76 ALG_ID* palgSupportedAlgs;
|
|
77 }
|
|
78 alias SecPkgCred_SupportedAlgs* PSecPkgCred_SupportedAlgs;
|
|
79
|
|
80 struct SecPkgCred_CypherStrengths {
|
|
81 DWORD dwMinimumCypherStrength;
|
|
82 DWORD dwMaximumCypherStrength;
|
|
83 }
|
|
84 alias SecPkgCred_CypherStrengths* PSecPkgCred_CypherStrengths;
|
|
85
|
|
86 struct SecPkgCred_SupportedProtocols {
|
|
87 DWORD grbitProtocol;
|
|
88 }
|
|
89 alias SecPkgCred_SupportedProtocols* PSecPkgCred_SupportedProtocols;
|
|
90
|
|
91 struct SecPkgContext_IssuerListInfoEx {
|
|
92 PCERT_NAME_BLOB aIssuers;
|
|
93 DWORD cIssuers;
|
|
94 }
|
|
95 alias SecPkgContext_IssuerListInfoEx* PSecPkgContext_IssuerListInfoEx;
|
|
96
|
|
97 struct SecPkgContext_ConnectionInfo {
|
|
98 DWORD dwProtocol;
|
|
99 ALG_ID aiCipher;
|
|
100 DWORD dwCipherStrength;
|
|
101 ALG_ID aiHash;
|
|
102 DWORD dwHashStrength;
|
|
103 ALG_ID aiExch;
|
|
104 DWORD dwExchStrength;
|
|
105 }
|
|
106 alias SecPkgContext_ConnectionInfo* PSecPkgContext_ConnectionInfo;
|