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.

123 lines
2.9 KiB

  1. //+---------------------------------------------------------------------------
  2. //
  3. // Microsoft Windows
  4. // Copyright (C) Microsoft Corporation, 1992 - 1995.
  5. //
  6. // File: sslp.h
  7. //
  8. // Contents:
  9. //
  10. // Classes:
  11. //
  12. // Functions:
  13. //
  14. // History: 10-02-96 RichardW Created
  15. //
  16. //----------------------------------------------------------------------------
  17. #define SECURITY_PACKAGE
  18. #include <spbasei.h>
  19. #include <security.h>
  20. #include <secint.h>
  21. #include "ssldebug.h"
  22. #include "proto.h"
  23. #include "userctxt.h"
  24. #define CALLBACK_GET_KEYS 1
  25. #define CALLBACK_DO_MAPPING 2
  26. extern HINSTANCE hDllInstance ;
  27. extern PLSA_SECPKG_FUNCTION_TABLE LsaTable ;
  28. extern TOKEN_SOURCE SslTokenSource ;
  29. extern SECURITY_STRING SslNamePrefix ;
  30. extern SECURITY_STRING SslDomainName ;
  31. extern SECURITY_STRING SslGlobalDnsDomainName ;
  32. extern SECURITY_STRING SslPackageName ;
  33. extern SECURITY_STRING SslLegacyPackageName ;
  34. extern LSA_STRING SslPackageNameA ;
  35. extern RTL_RESOURCE SslGlobalLock;
  36. #define SslGlobalReadLock() RtlAcquireResourceShared(&SslGlobalLock, TRUE)
  37. #define SslGlobalWriteLock() RtlAcquireResourceExclusive(&SslGlobalLock, TRUE)
  38. #define SslGlobalReleaseLock() RtlReleaseResource(&SslGlobalLock)
  39. NTSTATUS
  40. SslInitSystemMapper(void);
  41. NTSTATUS
  42. NTAPI
  43. SslDoClientRequest(
  44. IN PLSA_CLIENT_REQUEST ClientRequest,
  45. IN PVOID ProtocolSubmitBuffer,
  46. IN PVOID ClientBufferBase,
  47. IN ULONG SubmitBufferLen,
  48. OUT PVOID * ProtocolReturnBuffer,
  49. OUT PULONG ReturnBufferLength,
  50. OUT PNTSTATUS ProtocolStatus
  51. );
  52. NTSTATUS
  53. NTAPI
  54. SslMapExternalCredential(
  55. IN PLSA_CLIENT_REQUEST ClientRequest,
  56. IN PVOID ProtocolSubmitBuffer,
  57. IN PVOID ClientBufferBase,
  58. IN ULONG SubmitBufferLen,
  59. OUT PVOID * ProtocolReturnBuffer,
  60. OUT PULONG ReturnBufferLength,
  61. OUT PNTSTATUS ProtocolStatus
  62. );
  63. NTSTATUS
  64. SslDuplicateString(
  65. PUNICODE_STRING Dest,
  66. PUNICODE_STRING Source
  67. );
  68. VOID
  69. SslFreeString(
  70. IN OPTIONAL PUNICODE_STRING String
  71. );
  72. NTSTATUS
  73. SslRegisterForDomainChange(
  74. VOID);
  75. #define REQ_UPN_MAPPING 0x00000010
  76. #define REQ_SUBJECT_MAPPING 0x00000020
  77. #define REQ_ISSUER_MAPPING 0x00000040
  78. #define REQ_ISSUER_CHAIN_MAPPING 0x00000080
  79. typedef struct _SSL_CERT_NAME_INFO {
  80. ULONG IssuerOffset; // ASN1 encoded
  81. ULONG IssuerLength;
  82. } SSL_CERT_NAME_INFO, * PSSL_CERT_NAME_INFO;
  83. typedef struct _SSL_CERT_LOGON_REQ {
  84. ULONG MessageType ;
  85. ULONG Length ;
  86. ULONG OffsetCertificate ;
  87. ULONG CertLength ;
  88. ULONG Flags;
  89. ULONG CertCount;
  90. SSL_CERT_NAME_INFO NameInfo[1];
  91. } SSL_CERT_LOGON_REQ, * PSSL_CERT_LOGON_REQ ;
  92. typedef struct _SSL_CERT_LOGON_RESP {
  93. ULONG MessageType ;
  94. ULONG Length ;
  95. ULONG OffsetAuthData ;
  96. ULONG AuthDataLength ;
  97. ULONG Flags ;
  98. ULONG OffsetDomain ;
  99. ULONG DomainLength ;
  100. ULONG Align ;
  101. } SSL_CERT_LOGON_RESP, * PSSL_CERT_LOGON_RESP ;