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.
|
|
//+---------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1992 - 1995.
//
// File: mapper.h
//
// Contents:
//
// Classes:
//
// Functions:
//
// History: 10-15-96 RichardW Created
// 12-23-97 jbanes Added support for application mappers
//
//----------------------------------------------------------------------------
#ifndef __MAPPER_H__
#define __MAPPER_H__
HMAPPER * SslGetMapper( BOOL fDC);
DWORD WINAPI SslReferenceMapper( HMAPPER * phMapper); // in
DWORD WINAPI SslDereferenceMapper( HMAPPER * phMapper); // in
SECURITY_STATUS WINAPI SslGetMapperIssuerList( HMAPPER * phMapper, // in
BYTE ** ppIssuerList, // out
DWORD * pcbIssuerList); // out
SECURITY_STATUS WINAPI SslGetMapperChallenge( HMAPPER * phMapper, // in
BYTE * pAuthenticatorId, // in
DWORD cbAuthenticatorId, // in
BYTE * pChallenge, // out
DWORD * pcbChallenge); // out
SECURITY_STATUS WINAPI SslMapCredential( HMAPPER * phMapper, // in
DWORD dwCredentialType, // in
PCCERT_CONTEXT pCredential, // in
PCCERT_CONTEXT pAuthority, // in
HLOCATOR * phLocator); // out
SECURITY_STATUS WINAPI SslGetAccessToken( HMAPPER * phMapper, // in
HLOCATOR hLocator, // in
HANDLE * phToken); // out
SECURITY_STATUS WINAPI SslCloseLocator( HMAPPER * phMapper, // in
HLOCATOR hLocator); // in
//
// Issuer cache used for many-to-one mapping.
//
#define ISSUER_CACHE_LIFESPAN (10 * 60 * 1000) // 10 minutes
#define ISSUER_CACHE_SIZE 100
typedef struct { PLIST_ENTRY Cache;
DWORD dwLifespan; DWORD dwCacheSize; DWORD dwMaximumEntries; DWORD dwUsedEntries;
LIST_ENTRY EntryList; RTL_RESOURCE Lock; BOOL LockInitialized;
} ISSUER_CACHE;
extern ISSUER_CACHE IssuerCache;
typedef struct { DWORD CreationTime;
PBYTE pbIssuer; DWORD cbIssuer;
// List of cache entries assigned to a particular cache index.
LIST_ENTRY IndexEntryList;
// Global list of cache entries sorted by creation time.
LIST_ENTRY EntryList;
} ISSUER_CACHE_ENTRY;
SP_STATUS SPInitIssuerCache(void);
void SPShutdownIssuerCache(void);
void SPPurgeIssuerCache(void);
void SPDeleteIssuerEntry( ISSUER_CACHE_ENTRY *pItem);
BOOL SPFindIssuerInCache( PBYTE pbIssuer, DWORD cbIssuer);
void SPExpireIssuerCacheElements(void);
void SPAddIssuerToCache( PBYTE pbIssuer, DWORD cbIssuer);
#endif
|