OSDN Git Service

Make <winnls.h> header effectively self-contained.
[mingw/mingw-org-wsl.git] / w32api / include / schannel.h
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 */