1 | #ifndef _SCHANNEL_H
|
---|
2 | #define _SCHANNEL_H
|
---|
3 | #if __GNUC__ >=3
|
---|
4 | #pragma GCC system_header
|
---|
5 | #endif
|
---|
6 |
|
---|
7 | #include <wincrypt.h>
|
---|
8 |
|
---|
9 | #ifdef __cplusplus
|
---|
10 | extern "C" {
|
---|
11 | #endif
|
---|
12 |
|
---|
13 | #define SCHANNEL_CRED_VERSION 4
|
---|
14 | #define SCHANNEL_SHUTDOWN 1
|
---|
15 | /* ? Do these belong here or in wincrypt.h */
|
---|
16 | #define AUTHTYPE_CLIENT 1
|
---|
17 | #define AUTHTYPE_SERVER 2
|
---|
18 |
|
---|
19 | #define SP_PROT_TLS1_CLIENT 128
|
---|
20 | #define SP_PROT_TLS1_SERVER 64
|
---|
21 | #define SP_PROT_SSL3_CLIENT 32
|
---|
22 | #define SP_PROT_SSL3_SERVER 16
|
---|
23 | #define SP_PROT_SSL2_CLIENT 8
|
---|
24 | #define SP_PROT_SSL2_SERVER 4
|
---|
25 | #define SP_PROT_PCT1_SERVER 1
|
---|
26 | #define SP_PROT_PCT1_CLIENT 2
|
---|
27 |
|
---|
28 | #define SP_PROT_PCT1 (SP_PROT_PCT1_CLIENT|SP_PROT_PCT1_SERVER)
|
---|
29 | #define SP_PROT_TLS1 (SP_PROT_TLS1_CLIENT|SP_PROT_TLS1_SERVER)
|
---|
30 | #define SP_PROT_SSL2 (SP_PROT_SSL2_CLIENT|SP_PROT_SSL2_SERVER)
|
---|
31 | #define SP_PROT_SSL3 (SP_PROT_SSL3_CLIENT|SP_PROT_SSL3_SERVER)
|
---|
32 |
|
---|
33 | #define SCH_CRED_NO_SYSTEM_MAPPER 2
|
---|
34 | #define SCH_CRED_NO_SERVERNAME_CHECK 4
|
---|
35 | #define SCH_CRED_MANUAL_CRED_VALIDATION 8
|
---|
36 | #define SCH_CRED_NO_DEFAULT_CREDS 16
|
---|
37 | #define SCH_CRED_AUTO_CRED_VALIDATION 32
|
---|
38 | #define SCH_CRED_REVOCATION_CHECK_CHAIN 512
|
---|
39 | #define SCH_CRED_REVOCATION_CHECK_END_CERT 256
|
---|
40 | #define SCH_CRED_REVOCATION_CHECK_CHAIN_EXCLUDE_ROOT 1024
|
---|
41 | #define SCH_CRED_IGNORE_NO_REVOCATION_CHECK 2048
|
---|
42 | #define SCH_CRED_IGNORE_REVOCATION_OFFLINE 4096
|
---|
43 | #define SCH_CRED_USE_DEFAULT_CREDS 64
|
---|
44 |
|
---|
45 | typedef struct _SCHANNEL_CRED {
|
---|
46 | DWORD dwVersion;
|
---|
47 | DWORD cCreds;
|
---|
48 | PCCERT_CONTEXT* paCred;
|
---|
49 | HCERTSTORE hRootStore;
|
---|
50 | DWORD cMappers;
|
---|
51 | struct _HMAPPER** aphMappers;
|
---|
52 | DWORD cSupportedAlgs;
|
---|
53 | ALG_ID* palgSupportedAlgs;
|
---|
54 | DWORD grbitEnabledProtocols;
|
---|
55 | DWORD dwMinimumCypherStrength;
|
---|
56 | DWORD dwMaximumCypherStrength;
|
---|
57 | DWORD dwSessionLifespan;
|
---|
58 | DWORD dwFlags;
|
---|
59 | DWORD reserved;
|
---|
60 | } SCHANNEL_CRED, *PSCHANNEL_CRED;
|
---|
61 | typedef struct _SecPkgCred_SupportedAlgs {
|
---|
62 | DWORD cSupportedAlgs;
|
---|
63 | ALG_ID* palgSupportedAlgs;
|
---|
64 | } SecPkgCred_SupportedAlgs, *PSecPkgCred_SupportedAlgs;
|
---|
65 | typedef struct _SecPkgCred_CypherStrengths {
|
---|
66 | DWORD dwMinimumCypherStrength;
|
---|
67 | DWORD dwMaximumCypherStrength;
|
---|
68 | } SecPkgCred_CypherStrengths, *PSecPkgCred_CypherStrengths;
|
---|
69 | typedef struct _SecPkgCred_SupportedProtocols {
|
---|
70 | DWORD grbitProtocol;
|
---|
71 | } SecPkgCred_SupportedProtocols, *PSecPkgCred_SupportedProtocols;
|
---|
72 | typedef struct _SecPkgContext_IssuerListInfoEx {
|
---|
73 | PCERT_NAME_BLOB aIssuers;
|
---|
74 | DWORD cIssuers;
|
---|
75 | } SecPkgContext_IssuerListInfoEx, *PSecPkgContext_IssuerListInfoEx;
|
---|
76 | typedef struct _SecPkgContext_ConnectionInfo {
|
---|
77 | DWORD dwProtocol;
|
---|
78 | ALG_ID aiCipher;
|
---|
79 | DWORD dwCipherStrength;
|
---|
80 | ALG_ID aiHash;
|
---|
81 | DWORD dwHashStrength;
|
---|
82 | ALG_ID aiExch;
|
---|
83 | DWORD dwExchStrength;
|
---|
84 | } SecPkgContext_ConnectionInfo, *PSecPkgContext_ConnectionInfo;
|
---|
85 |
|
---|
86 | #ifdef __cplusplus
|
---|
87 | }
|
---|
88 | #endif
|
---|
89 |
|
---|
90 | #endif /* _SCHANNEL_H */
|
---|