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.7 KiB
84 lines
2.7 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)
|
|
|
|
|