10 #define SCHANNEL_NAME_A "Schannel"
11 #define SCHANNEL_NAME_W L"Schannel"
13 #define SCHANNEL_NAME SCHANNEL_NAME_W
15 #define SCHANNEL_NAME SCHANNEL_NAME_A
20 #define SCH_CRED_VERSION 2
22 #define SCHANNEL_CRED_VERSION 4
24 #define SCHANNEL_RENEGOTIATE 0
25 #define SCHANNEL_SHUTDOWN 1
26 #define SCHANNEL_ALERT 2
27 #define SCHANNEL_SESSION 3
29 #define SP_PROT_SSL2_CLIENT 8
30 #define SP_PROT_SSL3_CLIENT 32
31 #define SP_PROT_TLS1_CLIENT 128
32 #define SP_PROT_TLS1_0_CLIENT SP_PROT_TLS1_CLIENT
33 #define SP_PROT_TLS1_1_CLIENT 512
34 #define SP_PROT_TLS1_2_CLIENT 2048
36 #define SP_PROT_SSL2_SERVER 4
37 #define SP_PROT_SSL3_SERVER 16
38 #define SP_PROT_TLS1_SERVER 64
39 #define SP_PROT_TLS1_0_SERVER SP_PROT_TLS1_SERVER
40 #define SP_PROT_TLS1_1_SERVER 256
41 #define SP_PROT_TLS1_2_SERVER 1024
43 #define SP_PROT_PCT1_CLIENT 2
44 #define SP_PROT_PCT1_SERVER 1
46 #define SP_PROT_TLS1 (SP_PROT_TLS1_CLIENT | SP_PROT_TLS1_SERVER)
47 #define SP_PROT_SSL3 (SP_PROT_SSL3_CLIENT | SP_PROT_SSL3_SERVER)
48 #define SP_PROT_SSL2 (SP_PROT_SSL2_CLIENT | SP_PROT_SSL2_SERVER)
49 #define SP_PROT_PCT1 (SP_PROT_PCT1_CLIENT | SP_PROT_PCT1_SERVER)
51 #define SP_PROT_TLS1_1PLUS_CLIENT (SP_PROT_TLS1_1_CLIENT | SP_PROT_TLS1_2_CLIENT)
53 #define SCH_CRED_NO_SYSTEM_MAPPER 2
54 #define SCH_CRED_NO_SERVERNAME_CHECK 4
55 #define SCH_CRED_MANUAL_CRED_VALIDATION 8
56 #define SCH_CRED_NO_DEFAULT_CREDS 16
57 #define SCH_CRED_AUTO_CRED_VALIDATION 32
58 #define SCH_CRED_USE_DEFAULT_CREDS 64
59 #define SCH_CRED_REVOCATION_CHECK_CHAIN_END_CERT 256
60 #define SCH_CRED_REVOCATION_CHECK_CHAIN 512
61 #define SCH_CRED_REVOCATION_CHECK_CHAIN_EXCLUDE_ROOT 1024
62 #define SCH_CRED_IGNORE_NO_REVOCATION_CHECK 2048
63 #define SCH_CRED_IGNORE_REVOCATION_OFFLINE 4096
65 #define SECPKG_ATTR_ISSUER_LIST 0x50
66 #define SECPKG_ATTR_REMOTE_CRED 0x51
67 #define SECPKG_ATTR_LOCAL_CRED 0x52
68 #define SECPKG_ATTR_REMOTE_CERT_CONTEXT 0x53
69 #define SECPKG_ATTR_LOCAL_CERT_CONTEXT 0x54
70 #define SECPKG_ATTR_ROOT_STORE 0x55
71 #define SECPKG_ATTR_SUPPORTED_ALGS 0x56
72 #define SECPKG_ATTR_CIPHER_STRENGTHS 0x57
73 #define SECPKG_ATTR_SUPPORTED_PROTOCOLS 0x58
74 #define SECPKG_ATTR_ISSUER_LIST_EX 0x59
75 #define SECPKG_ATTR_CONNECTION_INFO 0x5a
76 #define SECPKG_ATTR_EAP_KEY_BLOCK 0x5b
77 #define SECPKG_ATTR_MAPPED_CRED_ATTR 0x5c
78 #define SECPKG_ATTR_SESSION_INFO 0x5d
79 #define SECPKG_ATTR_APP_DATA 0x5e
81 #define UNISP_RPC_ID 14
85 typedef struct _SCHANNEL_CRED
89 PCCERT_CONTEXT
*paCred
;
90 HCERTSTORE hRootStore
;
92 struct _HMAPPER
**aphMappers
;
94 ALG_ID
*palgSupportedAlgs
;
95 DWORD grbitEnabledProtocols
;
96 DWORD dwMinimumCipherStrength
;
97 DWORD dwMaximumCipherStrength
;
98 DWORD dwSessionLifespan
;
101 } SCHANNEL_CRED
, *PSCHANNEL_CRED
;
103 typedef struct _SecPkgCred_SupportedAlgs
105 DWORD cSupportedAlgs
;
106 ALG_ID
*palgSupportedAlgs
;
107 } SecPkgCred_SupportedAlgs
, *PSecPkgCred_SupportedAlgs
;
109 typedef struct _SecPkgCred_CipherStrengths
111 DWORD dwMinimumCipherStrength
;
112 DWORD dwMaximumCipherStrength
;
113 } SecPkgCred_CipherStrengths
, *PSecPkgCred_CipherStrengths
;
115 typedef struct _SecPkgCred_SupportedProtocols
118 } SecPkgCred_SupportedProtocols
, *PSecPkgCred_SupportedProtocols
;
120 typedef struct _SecPkgContext_IssuerListInfoEx
122 PCERT_NAME_BLOB aIssuers
;
124 } SecPkgContext_IssuerListInfoEx
, *PSecPkgContext_IssuerListInfoEx
;
126 typedef struct _SecPkgContext_ConnectionInfo
130 DWORD dwCipherStrength
;
132 DWORD dwHashStrength
;
134 DWORD dwExchStrength
;
135 } SecPkgContext_ConnectionInfo
, *PSecPkgContext_ConnectionInfo
;
141 #endif /* _SCHANNEL_H */