00001 00010 #ifndef __PKIFPATHVALIDATOR2_H__ 00011 #define __PKIFPATHVALIDATOR2_H__ 00012 00013 #include "PKIFdll.h" 00014 #include "IPKIFColleague.h" 00015 #include "IPKIFPathValidate.h" 00016 #include "components.h" 00017 // forward declaration 00018 struct CPKIFPathValidator2Impl; 00019 00043 class CAC_API CPKIFPathValidator2 : public IPKIFColleague, public IPKIFPathValidate 00044 { 00045 public: 00046 CPKIFPathValidator2(); 00047 virtual ~CPKIFPathValidator2(void); 00048 00049 //IPKIFColleague functions 00050 void Initialize(); 00051 00052 bool ValidatePath(CPKIFCertificatePath& path, CPKIFPathValidationResults& results, CPKIFFuncStoragePtr& thisCallOnlyFuncs); 00053 // bool BuildAndValidatePath(CPKIFCertificatePath& path, CPKIFPathValidationResults& results){} 00054 00055 void SetAdditionalCertificateChecks(CPKIFFuncStoragePtr& funcs); 00056 00057 bool GetEnforceTrustAnchorConstraints() const; 00058 void SetEnforceTrustAnchorConstraints(bool b); 00059 00060 private: 00062 CPKIFPathValidator2(const CPKIFPathValidator2& copy); 00064 CPKIFPathValidator2& operator=(const CPKIFPathValidator2& rhs); //added 4/6/2004 00065 00066 enum {thisComponent=TOOLKIT_PATH_VALIDATOR}; 00067 00068 struct CPKIFPathValidator2Impl *m_impl; 00069 }; 00070 DECLARE_SMART_POINTERS(CPKIFPathValidator2); 00071 00072 #endif