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