home *** CD-ROM | disk | FTP | other *** search
/ Beginning C++ Through Gam…rogramming (2nd Edition) / BCGP2E.ISO / bloodshed / devcpp-4.9.9.2_setup.exe / schannel.h < prev    next >
C/C++ Source or Header  |  2005-01-29  |  3KB  |  91 lines

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