Source code of Windows XP (NT5)
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.
|
|
//+-----------------------------------------------------------------------
//
// Microsoft Windows
//
// Copyright (c) Microsoft Corporation 1992 - 1996
//
// File: tktcache.h
//
// Contents: Prototypes and types for ticket cache
//
//
// History: 16-April-1996 Created MikeSw
//
//------------------------------------------------------------------------
#ifndef __TKTCACHE_H__
#define __TKTCACHE_H__
//
// All global variables declared as EXTERN will be allocated in the file
// that defines TKTCACHE_ALLOCATE
//
#ifdef EXTERN
#undef EXTERN
#endif
#ifdef TKTCACHE_ALLOCATE
#define EXTERN
#else
#define EXTERN extern
#endif
#ifdef WIN32_CHICAGO
EXTERN CRITICAL_SECTION KerberosTicketCacheLock; #else // WIN32_CHICAGO
EXTERN RTL_RESOURCE KerberosTicketCacheLock; #endif // WIN32_CHICAGO
EXTERN BOOLEAN KerberosTicketCacheInitialized; EXTERN LONG KerbTicketCacheHits; EXTERN LONG KerbTicketCacheMisses;
#define KERB_TICKET_CACHE_PRIMARY_TGT 0x1 // ticket is primary TGT
#define KERB_TICKET_CACHE_DELEGATION_TGT 0x2 // ticket is delegation TGT
#define KERB_TICKET_CACHE_TKT_ENC_IN_SKEY 0x10 // ticket is encrypted with a session key
#ifdef WIN32_CHICAGO
#define KerbWriteLockTicketCache() (EnterCriticalSection(&KerberosTicketCacheLock))
#define KerbReadLockTicketCache() (EnterCriticalSection(&KerberosTicketCacheLock))
#define KerbUnlockTicketCache() (LeaveCriticalSection(&KerberosTicketCacheLock))
#else // WIN32_CHICAGO
#define KerbWriteLockTicketCache() (RtlAcquireResourceExclusive(&KerberosTicketCacheLock,TRUE))
#define KerbReadLockTicketCache() (RtlAcquireResourceShared(&KerberosTicketCacheLock, TRUE))
#define KerbUnlockTicketCache() (RtlReleaseResource(&KerberosTicketCacheLock))
#endif // WIN32_CHICAGO
VOID KerbReferenceTicketCacheEntry( IN PKERB_TICKET_CACHE_ENTRY TicketCacheEntry );
VOID KerbFreeTicketCacheEntry( IN PKERB_TICKET_CACHE_ENTRY TicketCacheEntry );
VOID KerbReleaseTicketCacheEntry( IN PKERB_TICKET_CACHE_ENTRY TicketCacheEntry );
VOID KerbDereferenceTicketCacheEntry( IN PKERB_TICKET_CACHE_ENTRY TicketCacheEntry );
NTSTATUS KerbInitTicketCaching( VOID );
VOID KerbFreeTicketCache( VOID );
NTSTATUS KerbCacheTicket( IN OPTIONAL PKERB_TICKET_CACHE TicketCache, IN PKERB_KDC_REPLY KdcReply, IN PKERB_ENCRYPTED_KDC_REPLY KdcReplyBody, IN OPTIONAL PKERB_INTERNAL_NAME TargetName, IN OPTIONAL PUNICODE_STRING TargetRealm, IN ULONG Flags, IN BOOLEAN LinkEntry, OUT PKERB_TICKET_CACHE_ENTRY * NewCacheEntry );
VOID KerbPurgeTicketCache( IN PKERB_TICKET_CACHE Cache );
VOID KerbInitTicketCache( IN PKERB_TICKET_CACHE TicketCache );
PKERB_TICKET_CACHE_ENTRY KerbLocateTicketCacheEntry( IN PKERB_TICKET_CACHE TicketCache, IN PKERB_INTERNAL_NAME FullServiceName, IN PUNICODE_STRING RealmName );
PKERB_TICKET_CACHE_ENTRY KerbLocateTicketCacheEntryByRealm( IN PKERB_TICKET_CACHE TicketCache, IN PUNICODE_STRING RealmName, IN ULONG RequiredFlags );
VOID KerbInsertTicketCacheEntry( IN PKERB_TICKET_CACHE TicketCache, IN PKERB_TICKET_CACHE_ENTRY TicketCacheEntry );
VOID KerbRemoveTicketCacheEntry( IN PKERB_TICKET_CACHE_ENTRY TicketCacheEntry );
BOOLEAN KerbTicketIsExpiring( IN PKERB_TICKET_CACHE_ENTRY CacheEntry, IN BOOLEAN AllowSkew );
VOID KerbSetTicketCacheEntryTarget( IN PUNICODE_STRING TargetName, IN PKERB_TICKET_CACHE_ENTRY TicketCacheEntry );
#endif // __TKTCACHE_H__
|