summaryrefslogtreecommitdiffstats
path: root/winsup/w32api/include/schannel.h
diff options
context:
space:
mode:
Diffstat (limited to 'winsup/w32api/include/schannel.h')
-rw-r--r--winsup/w32api/include/schannel.h87
1 files changed, 87 insertions, 0 deletions
diff --git a/winsup/w32api/include/schannel.h b/winsup/w32api/include/schannel.h
new file mode 100644
index 000000000..ae16a4547
--- /dev/null
+++ b/winsup/w32api/include/schannel.h
@@ -0,0 +1,87 @@
+#ifndef _SCHANNEL_H
+#define _SCHANNEL_H
+
+#include <wincrypt.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define SCHANNEL_CRED_VERSION 4
+#define SCHANNEL_SHUTDOWN 1
+/* ? Do these belong here or in wincrypt.h */
+#define AUTHTYPE_CLIENT 1
+#define AUTHTYPE_SERVER 2
+
+#define SP_PROT_TLS1_CLIENT 128
+#define SP_PROT_TLS1_SERVER 64
+#define SP_PROT_SSL3_CLIENT 32
+#define SP_PROT_SSL3_SERVER 16
+#define SP_PROT_SSL2_CLIENT 8
+#define SP_PROT_SSL2_SERVER 4
+#define SP_PROT_PCT1_SERVER 1
+#define SP_PROT_PCT1_CLIENT 2
+
+#define SP_PROT_PCT1 (SP_PROT_PCT1_CLIENT|SP_PROT_PCT1_SERVER)
+#define SP_PROT_TLS1 (SP_PROT_TLS1_CLIENT|SP_PROT_TLS1_SERVER)
+#define SP_PROT_SSL2 (SP_PROT_SSL2_CLIENT|SP_PROT_SSL2_SERVER)
+#define SP_PROT_SSL3 (SP_PROT_SSL3_CLIENT|SP_PROT_SSL3_SERVER)
+
+#define SCH_CRED_NO_SYSTEM_MAPPER 2
+#define SCH_CRED_NO_SERVERNAME_CHECK 4
+#define SCH_CRED_MANUAL_CRED_VALIDATION 8
+#define SCH_CRED_NO_DEFAULT_CREDS 16
+#define SCH_CRED_AUTO_CRED_VALIDATION 32
+#define SCH_CRED_REVOCATION_CHECK_CHAIN 512
+#define SCH_CRED_REVOCATION_CHECK_END_CERT 256
+#define SCH_CRED_REVOCATION_CHECK_CHAIN_EXCLUDE_ROOT 1024
+#define SCH_CRED_IGNORE_NO_REVOCATION_CHECK 2048
+#define SCH_CRED_IGNORE_REVOCATION_OFFLINE 4096
+#define SCH_CRED_USE_DEFAULT_CREDS 64
+
+typedef struct _SCHANNEL_CRED {
+ DWORD dwVersion;
+ DWORD cCreds;
+ PCCERT_CONTEXT* paCred;
+ HCERTSTORE hRootStore;
+ DWORD cMappers;
+ struct _HMAPPER** aphMappers;
+ DWORD cSupportedAlgs;
+ ALG_ID* palgSupportedAlgs;
+ DWORD grbitEnabledProtocols;
+ DWORD dwMinimumCypherStrength;
+ DWORD dwMaximumCypherStrength;
+ DWORD dwSessionLifespan;
+ DWORD dwFlags;
+ DWORD reserved;
+} SCHANNEL_CRED, *PSCHANNEL_CRED;
+typedef struct _SecPkgCred_SupportedAlgs {
+ DWORD cSupportedAlgs;
+ ALG_ID* palgSupportedAlgs;
+} SecPkgCred_SupportedAlgs, *PSecPkgCred_SupportedAlgs;
+typedef struct _SecPkgCred_CypherStrengths {
+ DWORD dwMinimumCypherStrength;
+ DWORD dwMaximumCypherStrength;
+} SecPkgCred_CypherStrengths, *PSecPkgCred_CypherStrengths;
+typedef struct _SecPkgCred_SupportedProtocols {
+ DWORD grbitProtocol;
+} SecPkgCred_SupportedProtocols, *PSecPkgCred_SupportedProtocols;
+typedef struct _SecPkgContext_IssuerListInfoEx {
+ PCERT_NAME_BLOB aIssuers;
+ DWORD cIssuers;
+} SecPkgContext_IssuerListInfoEx, *PSecPkgContext_IssuerListInfoEx;
+typedef struct _SecPkgContext_ConnectionInfo {
+ DWORD dwProtocol;
+ ALG_ID aiCipher;
+ DWORD dwCipherStrength;
+ ALG_ID aiHash;
+ DWORD dwHashStrength;
+ ALG_ID aiExch;
+ DWORD dwExchStrength;
+} SecPkgContext_ConnectionInfo, *PSecPkgContext_ConnectionInfo;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SCHANNEL_H */