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.

103 lines
2.7 KiB

  1. //+-----------------------------------------------------------------------
  2. //
  3. // Microsoft Windows
  4. //
  5. // Copyright (c) Microsoft Corporation 2000
  6. //
  7. // File: kerbs4u.h
  8. //
  9. // Contents: Structures and prototyps for Service4User protocol
  10. //
  11. //
  12. // History: 13 - March - 2000 Created Todds
  13. //
  14. //------------------------------------------------------------------------
  15. #ifndef __KERBS4U_H__
  16. #define __KERBS4U_H__
  17. //
  18. // Flags for the S4U cache
  19. //
  20. #define S4UCACHE_S4U_AVAILABLE 0x0100
  21. #define S4UCACHE_S4U_UNAVAILABLE 0x1000
  22. #define S4UCACHE_TIMEOUT 0x4000
  23. typedef struct _KERB_S4UCACHE_DATA {
  24. KERBEROS_LIST_ENTRY ListEntry;
  25. volatile LONG Linked;
  26. LUID LogonId;
  27. ULONG CacheState;
  28. TimeStamp CacheEndtime;
  29. } KERB_S4UCACHE_DATA, *PKERB_S4UCACHE_DATA;
  30. //
  31. // Flags for the S4U ticket cache lookup
  32. //
  33. #define S4UTICKETCACHE_FOR_EVIDENCE 0x1
  34. #define S4UTICKETCACHE_USEALTNAME 0x2
  35. #define S4UTICKETCACHE_MATCH_ALL 0x4
  36. NTSTATUS
  37. KerbGetCallingLuid(
  38. IN OUT PLUID CallingLuid,
  39. IN OPTIONAL HANDLE hProcess
  40. );
  41. NTSTATUS
  42. KerbInitS4UCache();
  43. BOOLEAN
  44. KerbAllowedForS4UProxy( IN PLUID LogonId );
  45. NTSTATUS
  46. KerbScheduleS4UCleanup();
  47. NTSTATUS
  48. KerbGetS4UProxyEvidence(
  49. IN PKERB_LOGON_SESSION LogonSession,
  50. IN PKERB_INTERNAL_NAME TargetName,
  51. IN ULONG ClientProcess,
  52. IN OUT PKERB_LOGON_SESSION * CallerLogonSession,
  53. IN OUT PKERB_TICKET_CACHE_ENTRY * TicketCacheEntry
  54. );
  55. NTSTATUS
  56. KerbS4UToSelfLogon(
  57. IN PVOID ProtocolSubmitBuffer,
  58. IN PVOID ClientBufferBase,
  59. IN ULONG SubmitBufferSize,
  60. OUT PKERB_LOGON_SESSION * NewLogonSession,
  61. OUT PLUID LogonId,
  62. OUT PKERB_TICKET_CACHE_ENTRY * WorkstationTicket,
  63. OUT PKERB_INTERNAL_NAME * S4UClientName,
  64. OUT PUNICODE_STRING S4UClientRealm,
  65. OUT PLUID AlternateLuid
  66. );
  67. NTSTATUS
  68. KerbGetServiceTicketByS4UProxy(
  69. IN PKERB_LOGON_SESSION LogonSession,
  70. IN PKERB_LOGON_SESSION CallerLogonSession,
  71. IN PKERB_CREDENTIAL Credential,
  72. IN PKERB_TICKET_CACHE_ENTRY EvidenceTicketCacheEntry,
  73. IN PKERB_INTERNAL_NAME TargetName,
  74. IN PUNICODE_STRING TargetDomainName,
  75. IN OPTIONAL PKERB_SPN_CACHE_ENTRY SpnCacheEntry,
  76. IN ULONG Flags,
  77. IN OPTIONAL ULONG TicketOptions,
  78. IN OPTIONAL ULONG EncryptionType,
  79. IN OPTIONAL PKERB_ERROR ErrorMessage,
  80. IN OPTIONAL PKERB_AUTHORIZATION_DATA AuthorizationData,
  81. IN OPTIONAL PKERB_TGT_REPLY TgtReply,
  82. OUT PKERB_TICKET_CACHE_ENTRY * NewCacheEntry,
  83. OUT LPGUID pLogonGuid OPTIONAL
  84. );
  85. #endif // __KERBS4U_H__