Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

106 lines
3.3 KiB

  1. //+--------------------------------------------------------------------
  2. //
  3. // Microsoft Windows
  4. //
  5. // Copyright (c) Microsoft Corporation 2000
  6. //
  7. // File: ntdigest.h
  8. //
  9. // Contents: some general defines for SSP NTDigest
  10. //
  11. // Helper functions:
  12. //
  13. // History: KDamour 10Mar00 Created
  14. //
  15. //---------------------------------------------------------------------
  16. #ifndef NTDIGEST_NTDIGEST_H
  17. #define NTDIGEST_NTDIGEST_H
  18. #define NTDIGEST_TOKEN_NAME_A "WDIGEST"
  19. #define NTDIGEST_DLL_NAME L"wdigest.dll"
  20. #define NTDIGEST_SP_VERSION 1
  21. // Registry Information
  22. #define REG_DIGEST_BASE TEXT("System\\CurrentControlSet\\Control\\SecurityProviders\\WDigest")
  23. // Values
  24. #define REG_DIGEST_OPT_LIFETIME TEXT("Lifetime")
  25. #define REG_DIGEST_OPT_EXPIRESLEEP TEXT("Expiresleep")
  26. #define REG_DIGEST_OPT_DELEGATION TEXT("Delegation")
  27. #define REG_DIGEST_OPT_NEGOTIATE TEXT("Negotiate")
  28. #define REG_DIGEST_OPT_DEBUGLEVEL TEXT("Debuglevel")
  29. #define REG_DIGEST_OPT_MAXCTXTCOUNT TEXT("MaxContext")
  30. #define REG_DIGEST_OPT_UTF8HTTP TEXT("UTF8HTTP") // allow UTF-8 encoding for HTTP mode
  31. #define REG_DIGEST_OPT_UTF8SASL TEXT("UTF8SASL") // allow UTF-8 encoding for SASL mode
  32. #define REG_DIGEST_OPT_SERVERCOMPAT TEXT("ServerCompat") // See ServerCompat*
  33. #define REG_DIGEST_OPT_CLIENTCOMPAT TEXT("ClientCompat") // see ClientCompat*
  34. // Lifetime for a Nonce - 10 hours
  35. #define PARAMETER_LIFETIME (36000)
  36. #define SASL_MAX_DATA_BUFFER 65536
  37. // Max number of context entries to keep before tossing out old ones
  38. #define PARAMETER_MAXCTXTCOUNT 30000
  39. // BOOL is Delegation is allowed on machine - default is FALSE
  40. #define PARAMETER_DELEGATION FALSE
  41. // BOOL is Nego support is allowed on machine - default is FALSE
  42. #define PARAMETER_NEGOTIATE FALSE
  43. // MILLISECONDS for Sleep for the garbage collector for expired context entries
  44. // Every 15 minutes is a reasonable default 1000*60*15 =
  45. #define PARAMETER_EXPIRESLEEPINTERVAL 900000
  46. // Boolean if challenges should be sent with UTF8 support
  47. #define PARAMETER_UTF8_HTTP TRUE
  48. #define PARAMETER_UTF8_SASL TRUE
  49. // ServerCompat bits
  50. // SERVERCOMPAT_BS_ENCODE - should server retry for BS encoded broken clients
  51. #define SERVERCOMPAT_BS_ENCODE 0x0000001
  52. // Select which bits of the ServerCompat want to have as default
  53. #define PARAMETER_SERVERCOMPAT (SERVERCOMPAT_BS_ENCODE)
  54. // ClientCompat
  55. // CLIENTCOMPAT_QQOP - HTTPmode should client qop be quoted
  56. #define CLIENTCOMPAT_QQOP 0x0000001
  57. // Select which bits of the ClientCompat want to have as default
  58. #define PARAMETER_CLIENTCOMPAT (CLIENTCOMPAT_QQOP)
  59. // Function Prototypes
  60. void DebugInitialize(void);
  61. VOID DigestWatchParamKey(
  62. PVOID pCtxt,
  63. BOOLEAN fWaitStatus);
  64. BOOL NtDigestReadRegistry(
  65. BOOL fFirstTime);
  66. BOOL NtDigestInitReadRegistry(void);
  67. void ReadDwordRegistrySetting(
  68. HKEY hReadKey,
  69. HKEY hWriteKey,
  70. LPCTSTR pszValueName,
  71. DWORD * pdwValue,
  72. DWORD dwDefaultValue);
  73. void SPUnloadRegOptions(void);
  74. BOOL SPLoadRegOptions(void);
  75. // Some common max sizes
  76. #define NTDIGEST_MAX_REALM_SIZE 256 // should be based on a NT domain size
  77. #endif // NTDIGEST_NTGDIGEST_H