blob: 1d2fbda7ddb9364fdbdc55f57e79aff68f148cbc [file] [log] [blame]
/**
* Windows API header module
*
* Translated from MinGW Windows headers
*
* Authors: Stewart Gordon
* License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
* Source: $(DRUNTIMESRC src/core/sys/windows/_schannel.d)
*/
module core.sys.windows.schannel;
version (Windows):
@system:
import core.sys.windows.wincrypt;
import core.sys.windows.windef;
enum DWORD SCHANNEL_CRED_VERSION = 4;
enum SCHANNEL_SHUTDOWN = 1;
/* Comment from MinGW
? Do these belong here or in wincrypt.h
*/
enum : DWORD {
AUTHTYPE_CLIENT = 1,
AUTHTYPE_SERVER = 2
}
enum DWORD
SP_PROT_PCT1_SERVER = 0x01,
SP_PROT_PCT1_CLIENT = 0x02,
SP_PROT_SSL2_SERVER = 0x04,
SP_PROT_SSL2_CLIENT = 0x08,
SP_PROT_SSL3_SERVER = 0x10,
SP_PROT_SSL3_CLIENT = 0x20,
SP_PROT_TLS1_SERVER = 0x40,
SP_PROT_TLS1_CLIENT = 0x80,
SP_PROT_PCT1 = SP_PROT_PCT1_CLIENT | SP_PROT_PCT1_SERVER,
SP_PROT_TLS1 = SP_PROT_TLS1_CLIENT | SP_PROT_TLS1_SERVER,
SP_PROT_SSL2 = SP_PROT_SSL2_CLIENT | SP_PROT_SSL2_SERVER,
SP_PROT_SSL3 = SP_PROT_SSL3_CLIENT | SP_PROT_SSL3_SERVER;
enum DWORD
SCH_CRED_NO_SYSTEM_MAPPER = 0x0002,
SCH_CRED_NO_SERVERNAME_CHECK = 0x0004,
SCH_CRED_MANUAL_CRED_VALIDATION = 0x0008,
SCH_CRED_NO_DEFAULT_CREDS = 0x0010,
SCH_CRED_AUTO_CRED_VALIDATION = 0x0020,
SCH_CRED_USE_DEFAULT_CREDS = 0x0040,
SCH_CRED_REVOCATION_CHECK_END_CERT = 0x0100,
SCH_CRED_REVOCATION_CHECK_CHAIN = 0x0200,
SCH_CRED_REVOCATION_CHECK_CHAIN_EXCLUDE_ROOT = 0x0400,
SCH_CRED_IGNORE_NO_REVOCATION_CHECK = 0x0800,
SCH_CRED_IGNORE_REVOCATION_OFFLINE = 0x1000;
// No definition - presumably an opaque structure
struct _HMAPPER;
struct SCHANNEL_CRED {
DWORD dwVersion = SCHANNEL_CRED_VERSION;
DWORD cCreds;
PCCERT_CONTEXT* paCred;
HCERTSTORE hRootStore;
DWORD cMappers;
_HMAPPER** aphMappers;
DWORD cSupportedAlgs;
ALG_ID* palgSupportedAlgs;
DWORD grbitEnabledProtocols;
DWORD dwMinimumCypherStrength;
DWORD dwMaximumCypherStrength;
DWORD dwSessionLifespan;
DWORD dwFlags;
DWORD reserved;
}
alias SCHANNEL_CRED* PSCHANNEL_CRED;
struct SecPkgCred_SupportedAlgs {
DWORD cSupportedAlgs;
ALG_ID* palgSupportedAlgs;
}
alias SecPkgCred_SupportedAlgs* PSecPkgCred_SupportedAlgs;
struct SecPkgCred_CypherStrengths {
DWORD dwMinimumCypherStrength;
DWORD dwMaximumCypherStrength;
}
alias SecPkgCred_CypherStrengths* PSecPkgCred_CypherStrengths;
struct SecPkgCred_SupportedProtocols {
DWORD grbitProtocol;
}
alias SecPkgCred_SupportedProtocols* PSecPkgCred_SupportedProtocols;
struct SecPkgContext_IssuerListInfoEx {
PCERT_NAME_BLOB aIssuers;
DWORD cIssuers;
}
alias SecPkgContext_IssuerListInfoEx* PSecPkgContext_IssuerListInfoEx;
struct SecPkgContext_ConnectionInfo {
DWORD dwProtocol;
ALG_ID aiCipher;
DWORD dwCipherStrength;
ALG_ID aiHash;
DWORD dwHashStrength;
ALG_ID aiExch;
DWORD dwExchStrength;
}
alias SecPkgContext_ConnectionInfo* PSecPkgContext_ConnectionInfo;