00001 00009 #ifndef __SIMPLEROOTSTORE_H__ 00010 #define __SIMPLEROOTSTORE_H__ 00011 00012 #include "PKIFdll.h" 00013 #include "components.h" 00014 #include "IPKIFTrustCache.h" 00015 #include "IPKIFTrustCacheUpdate.h" 00016 #include "IPKIFColleague.h" 00017 #include "IPKIFCertSearch.h" 00018 00019 FD_SMART_PTR(CPKIFName); 00020 00021 00037 class CAC_API SimpleRootStore : public IPKIFTrustCache, public IPKIFTrustCacheUpdate, 00038 public IPKIFColleague, public IPKIFCertSearch 00039 { 00040 public: 00041 SimpleRootStore(void); 00042 virtual ~SimpleRootStore(void); 00043 00044 //IPKIFColleague functions 00045 void Initialize(void); 00046 00047 //IPKIFCertSearch 00048 void FindCertificates(IPKIFSearchCriteria* searchCriteria, CPKIFCertificateList& certList, PKIInfoSource source = ALL); 00049 void FindKeys(IPKIFSearchCriteria* searchCriteria, IPKIFNameAndKeyList& keyList, PKIInfoSource source = ALL); 00050 00051 //IPKIFCertRepository IPKIFTrustCache 00052 bool GetTrustRoots(const CPKIFNamePtr& subDN, IPKIFTrustAnchorList& root); 00053 00054 void GetTrustRoots(IPKIFTrustAnchorList& v); 00055 00056 //IPKIFTrustCacheUpdate 00057 void AddTrustRoot(const IPKIFTrustAnchorPtr& root); 00058 00059 void Clear(); 00060 00061 private: 00063 SimpleRootStore(const SimpleRootStore& copy); 00065 SimpleRootStore& operator=(const SimpleRootStore& rhs); //added 4/6/2004 00066 00067 enum { thisComponent = TOOLKIT_SR_SIMPLEROOTSTORE }; 00068 struct SimpleRootStoreImpl *m_impl; 00069 00070 }; 00071 DECLARE_SMART_POINTERS(SimpleRootStore); 00072 00073 CAC_API SimpleRootStore* MakeSimpleRootStore(); 00074 CAC_API void FreeSimpleRootStore(SimpleRootStore* ldap); 00075 #endif 00076