EsiPkcs11Module.h

00001 #ifndef ESI_PKCS11_MOD_H
00002 #define ESI_PKCS11_MOD_H 1
00003 
00004 #include "common.h"
00005 
00006 #include "Session.h"
00007 #include "Slot.h"
00008 
00009 class Session;
00010 class Slot;
00011 
00012 
00017 class EsiPkcs11Module
00018 {
00019   public:
00023     EsiPkcs11Module(void);
00027     ~EsiPkcs11Module(void);
00028     string getManufacturerId(void);
00029     string getModuleDescription(void);
00030     int getCryptokiMinorVersion(void);
00034     int getCryptokiMajorVersion(void);
00038     int getLibraryMinorVersion(void);
00042     int getLibraryMajorVersion(void);
00043     
00050     CK_RV getInfo(CK_INFO* pInfo);
00051     
00056     Session* getSession(CK_SESSION_HANDLE handle);
00061     list<Slot*> getSlotList();
00065     Slot* getSlot(CK_SLOT_ID id);
00066     
00074     Session* openSession(CK_SLOT_ID slotID, CK_FLAGS flags, CK_VOID_PTR pApplication, CK_NOTIFY notifyFunc);
00078     void closeSession(CK_SESSION_HANDLE hSession);
00079     
00080     template <class Map> 
00081     static void deleteMap(Map& someMap);
00082     //static void deleteList(Container someMap);
00083     
00084   private:
00088     map<CK_SESSION_HANDLE,Session*> sessions;
00092     map<CK_SLOT_ID,Slot*> slots;
00096     static CK_INFO info;
00100     void loadSlots();
00101 
00102 public:
00103   CK_RV openSession(void);
00104 };
00105 #endif

Generated on Fri Jan 12 15:48:41 2007 for NIST_PKCS11 by doxygen 1.3.1 using KingsTools