00001 00009 #ifndef __PKIFCAPITRUSTSTORE2_H__ 00010 #define __PKIFCAPITRUSTSTORE2_H__ 00011 00012 #include "PKIFdll.h" 00013 00014 #include "IPKIFTrustCache.h" 00015 #include "IPKIFCAPISource.h" 00016 #include "IPKIFColleague.h" 00017 #include "components.h" 00018 #include "IPKIFCertSearch.h" 00019 00020 #include <wincrypt.h> 00021 00022 extern CAC_API char g_defCACCAPITrustStore[]; 00040 class CAC_API CPKIFCAPITrustStore2 : public IPKIFTrustCache, public IPKIFCertSearch, public IPKIFColleague, public IPKIFCAPISource 00041 { 00042 public: 00043 CPKIFCAPITrustStore2(int sysStoRegLoc = CERT_SYSTEM_STORE_CURRENT_USER, const char* store = g_defCACCAPITrustStore); 00044 virtual ~CPKIFCAPITrustStore2(void); 00045 00046 //IPKIFColleague functions 00047 void Initialize(void); 00048 00049 bool GetTrustRoots(const CPKIFNamePtr& subDN, IPKIFTrustAnchorList& root); 00050 00051 void FindCertificates(IPKIFSearchCriteria* searchCriteria, CPKIFCertificateList& certList, PKIInfoSource source = ALL); 00052 00053 private: 00055 CPKIFCAPITrustStore2(const CPKIFCAPITrustStore2& copy); 00057 CPKIFCAPITrustStore2& operator=(const CPKIFCAPITrustStore2& rhs); //added 4/6/2004 00058 00059 struct CPKIFCAPITrustStore2Impl *m_impl; 00060 00061 enum {thisComponent = TOOLKIT_SR_CAPITRUSTSTORE}; 00062 }; 00063 DECLARE_SMART_POINTERS(CPKIFCAPITrustStore2); 00064 00065 #endif