|
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 */ |