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

//+-----------------------------------------------------------------------
//
// 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__