00001 00010 #ifndef __PKIFCERTIFICATEPATH_H__ 00011 #define __PKIFCERTIFICATEPATH_H__ 00012 00013 #include "PKIFdll.h" 00014 00015 00016 // forward declaration 00017 struct CPKIFCertificatePathImpl; 00018 FD_SMART_PTR(CPKIFCertificate); 00019 FD_SMART_PTR(IPKIFTrustAnchor); 00020 00021 //FD_SMART_PTR(CPKIFCertificateNodeEntry); 00022 //typedef std::vector<CPKIFCertificateNodeEntryPtr, PKIFAlloc<CPKIFCertificateNodeEntryPtr> > CPKIFCertificateNodeList; 00023 //DECLARE_SMART_POINTERS(CPKIFCertificateNodeList); 00024 FD_NODE_LIST_PTR(CPKIFCertificateNodeEntry); 00025 00026 FD_SMART_PTR(CPKIFCertificatePathState); 00027 FD_SMART_PTR(CPKIFTrustRoot); 00028 FD_SMART_PTR(CPKIFPathSettings); 00029 FD_SMART_PTR(CPKIFBuilderStatistics); 00030 00045 class CAC_API CPKIFCertificatePath 00046 { 00047 public: 00048 CPKIFCertificatePath(void); 00049 virtual ~CPKIFCertificatePath(void); 00050 00051 //set/get target certificate 00052 void SetTarget(const CPKIFCertificatePtr& cert); 00053 void GetTarget(CPKIFCertificatePtr& cert)const; 00054 00055 //set/get path 00056 void SetPath(const CPKIFCertificateNodeList& path); 00057 void GetPath(CPKIFCertificateNodeList& path)const; 00058 00059 //set/get path state 00060 void SetState(const CPKIFCertificatePathStatePtr& state); 00061 void GetState(CPKIFCertificatePathStatePtr& state)const; 00062 00063 //set/get trust root 00064 void SetTrustRoot(const IPKIFTrustAnchorPtr& root); 00065 void GetTrustRoot(IPKIFTrustAnchorPtr& root)const; 00066 00067 //set/get path settings 00068 void SetPathSettings(const CPKIFPathSettingsPtr& settings); 00069 void GetPathSettings(CPKIFPathSettingsPtr& settings)const; 00070 00071 //set/get builder stats 00072 void SetBuilderStats(const CPKIFBuilderStatisticsPtr& stats); 00073 void GetBuilderStats(CPKIFBuilderStatisticsPtr& stats)const; 00074 00075 //set/get CRLs (need some abstract class for returning rev info) 00076 /* rev info is now stored solely on the cert status object 00077 void ClearCRLs(); 00078 void AddCRL(CPKIFCRLPtr& crl); 00079 void GetCRLList(CPKIFCRLList& crlList);*/ 00080 00081 private: 00083 CPKIFCertificatePath(const CPKIFCertificatePath& copy); 00085 CPKIFCertificatePath& operator=(const CPKIFCertificatePath& rhs); //added 4/6/2004 00086 00087 struct CPKIFCertificatePathImpl *m_impl; 00088 00089 /* 00090 CPKIFCertificatePtr m_target; //lone target cert 00091 CPKIFCertificateNodeList m_path; //list of certs incl. target to closet to root 00092 CPKIFTrustRootPtr m_root; //lone trust root 00093 00094 CPKIFCertificatePathStatePtr m_state;//builder-specific state object 00095 CPKIFPathSettingsPtr m_settings; //generic path val settings (may need to be val obj specific) 00096 CPKIFBuilderStatisticsPtr m_stats; 00097 CPKIFCRLList m_crlList; 00098 */ 00099 }; 00100 DECLARE_SMART_POINTERS(CPKIFCertificatePath); 00101 00102 #endif 00103