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.
 
 
 
 
 
 

84 lines
2.6 KiB

// ObjectInfoFile.h: interface for the CObjectInfoFile class.
//
// (c) Copyright Schlumberger Technology Corp., unpublished work, created
// 1999. This computer program includes Confidential, Proprietary
// Information and is a Trade Secret of Schlumberger Technology Corp. All
// use, disclosure, and/or reproduction is prohibited unless authorized
// in writing. All Rights Reserved.
//////////////////////////////////////////////////////////////////////
#if !defined(CCI_OBJECTINFOFILE_H)
#define CCI_OBJECTINFOFILE_H
#include "slbCci.h"
namespace cci {
class CObjectInfoFile
{
public:
CObjectInfoFile(iop::CSmartCard &rSmartCard,
std::string const &rPath,
ObjectAccess oa);
virtual ~CObjectInfoFile() {};
void Reset();
void UpdateCache();
ObjectAccess
AccessType() const;
CSymbolTable &SymbolTable() {return m_SymbolTable; };
SymbolID AddSymbol(std::string aString);
std::string FindSymbol(SymbolID sid);
void RemoveSymbol(SymbolID sid);
SymbolID DefaultContainer() const { return m_bDefaultContainer; };
void DefaultContainer(SymbolID bHandle);
SymbolID FirstObject(ObjectType type) const;
void FirstObject(ObjectType type, SymbolID bHandle);
SymbolID NextObject(SymbolID bHandle);
void NextObject(SymbolID bHandle, SymbolID bHandleNext);
SymbolID AddObject(ObjectType type, unsigned short size);
void RemoveObject(ObjectType type, SymbolID bHandle);
void ReadObject(SymbolID bHandle, BYTE* bData);
void WriteObject(SymbolID bHandle, BYTE* bData);
unsigned short TableSize();
unsigned short FreeSpace();
private:
ObjectAccess m_oa;
std::string m_Path;
CSymbolTable m_SymbolTable;
iop::CSmartCard &m_rSmartCard;
SymbolID m_bDefaultContainer;
SymbolID m_bFirstContainer;
SymbolID m_bFirstCertificate;
SymbolID m_bFirstPublicKey;
SymbolID m_bFirstPrivateKey;
SymbolID m_bFirstDataObject;
};
const unsigned short ObjDefaultContainerLoc = 0; // Location of default container handle
const unsigned short ObjFirstContainerLoc = 1; // Location of first container handle
const unsigned short ObjFirstCertificateLoc = 2; // Location of first certificate handle
const unsigned short ObjFirstPublicKeyLoc = 3; // Location of first public key handle
const unsigned short ObjFirstPrivateKeyLoc = 4; // Location of first private key handle
const unsigned short ObjFirstDataObjectLoc = 5; // Location of first data object handle
const unsigned short ObjMasterBlkSize = 10; // Size of master block
}
#endif // !defined(CCI_OBJECTINFOFILE_H)