mirror of https://github.com/lianthony/NT4.0
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.
46 lines
1.2 KiB
46 lines
1.2 KiB
|
|
#define PCT_CI_EMPTY 0
|
|
#define PCT_CI_FULL 1
|
|
|
|
#define CACHE_EXPIRE_TICKS 100*1000
|
|
|
|
typedef struct _ekis {
|
|
DWORD dwClearLen;
|
|
UCHAR ClearKey[MASTER_KEY_SIZE];
|
|
} ExportKeyInfo;
|
|
|
|
typedef struct _SessCacheItem {
|
|
DWORD dwCState;
|
|
DWORD Time;
|
|
PctSessionId Session;
|
|
UCHAR *TargetName;
|
|
CipherSpec SessCiphSpec;
|
|
HashSpec SessHashSpec;
|
|
CertSpec SessCertLen;
|
|
ExchSpec SessExchSpec;
|
|
UCHAR MasterKey[MASTER_KEY_SIZE];
|
|
ExportKeyInfo *ClearData;
|
|
UCHAR CertData[CERT_SIZE];
|
|
} SessCacheItem;
|
|
|
|
// PctCacheLockedAndLoaded -
|
|
// returns TRUE if the cache is ready to go.
|
|
BOOL PctCacheLockedAndLoaded();
|
|
|
|
// PctInitSessionCache(size)
|
|
// inits the internal cache to CacheSize items
|
|
BOOL PctInitSessionCache(DWORD CacheSize);
|
|
|
|
// PctFindSessIdInCache
|
|
// look for a cache item with a given session id
|
|
BOOL PctFindSessIdInCache(PctSessionId *ThisSession, SessCacheItem *RetItem);
|
|
|
|
// PctFindTargetInCache
|
|
// look for a cache item with a specific target name
|
|
BOOL PctFindTargetInCache(UCHAR *Target, SessCacheItem *RetItem);
|
|
|
|
// PctAddToCache
|
|
// add an item to a cache. Assumes that the TargetName parameter will
|
|
// remain valid until the cache frees it.
|
|
BOOL PctAddToCache(SessCacheItem *AddItem);
|
|
|