|
|
//+-----------------------------------------------------------------------
//
// Microsoft Windows
//
// Copyright (c) Microsoft Corporation 2000
//
// File: kerbs4u.h
//
// Contents: Structures and prototyps for Service4User protocol
//
//
// History: 13 - March - 2000 Created Todds
//
//------------------------------------------------------------------------
#ifndef __KERBS4U_H__
#define __KERBS4U_H__
//
// Flags for the S4U cache
//
#define S4UCACHE_S4U_AVAILABLE 0x0100
#define S4UCACHE_S4U_UNAVAILABLE 0x1000
#define S4UCACHE_TIMEOUT 0x4000
typedef struct _KERB_S4UCACHE_DATA { KERBEROS_LIST_ENTRY ListEntry; volatile LONG Linked; LUID LogonId; ULONG CacheState; TimeStamp CacheEndtime; } KERB_S4UCACHE_DATA, *PKERB_S4UCACHE_DATA;
//
// Flags for the S4U ticket cache lookup
//
#define S4UTICKETCACHE_FOR_EVIDENCE 0x1
#define S4UTICKETCACHE_USEALTNAME 0x2
#define S4UTICKETCACHE_MATCH_ALL 0x4
NTSTATUS KerbGetCallingLuid( IN OUT PLUID CallingLuid, IN OPTIONAL HANDLE hProcess );
NTSTATUS KerbInitS4UCache();
BOOLEAN KerbAllowedForS4UProxy( IN PLUID LogonId );
NTSTATUS KerbScheduleS4UCleanup();
NTSTATUS KerbGetS4UProxyEvidence( IN PKERB_LOGON_SESSION LogonSession, IN PKERB_INTERNAL_NAME TargetName, IN ULONG ClientProcess, IN OUT PKERB_LOGON_SESSION * CallerLogonSession, IN OUT PKERB_TICKET_CACHE_ENTRY * TicketCacheEntry );
NTSTATUS KerbS4UToSelfLogon( IN PVOID ProtocolSubmitBuffer, IN PVOID ClientBufferBase, IN ULONG SubmitBufferSize, OUT PKERB_LOGON_SESSION * NewLogonSession, OUT PLUID LogonId, OUT PKERB_TICKET_CACHE_ENTRY * WorkstationTicket, OUT PKERB_INTERNAL_NAME * S4UClientName, OUT PUNICODE_STRING S4UClientRealm, OUT PLUID AlternateLuid );
NTSTATUS KerbGetServiceTicketByS4UProxy( IN PKERB_LOGON_SESSION LogonSession, IN PKERB_LOGON_SESSION CallerLogonSession, IN PKERB_CREDENTIAL Credential, IN PKERB_TICKET_CACHE_ENTRY EvidenceTicketCacheEntry, IN PKERB_INTERNAL_NAME TargetName, IN PUNICODE_STRING TargetDomainName, IN OPTIONAL PKERB_SPN_CACHE_ENTRY SpnCacheEntry, IN ULONG Flags, IN OPTIONAL ULONG TicketOptions, IN OPTIONAL ULONG EncryptionType, IN OPTIONAL PKERB_ERROR ErrorMessage, IN OPTIONAL PKERB_AUTHORIZATION_DATA AuthorizationData, IN OPTIONAL PKERB_TGT_REPLY TgtReply, OUT PKERB_TICKET_CACHE_ENTRY * NewCacheEntry, OUT LPGUID pLogonGuid OPTIONAL );
#endif // __KERBS4U_H__
|