PKIFX509CRLChecker.h

Go to the documentation of this file.
00001 
00009 #ifndef __PKIFX509CRLCHECKER_H__
00010 #define __PKIFX509CRLCHECKER_H__
00011 
00012 #include "PKIFdll.h"
00013 #include <vector>
00014 #include "IPKIFColleague.h"
00015 #include "PKIFRevocationStatusInterfaces.h"
00016 #include "components.h"
00017 
00018 FD_SMART_PTR(CPKIFReasonFlags);
00019 FD_LIST_PTR(CPKIFCRL);
00020 FD_SMART_PTR(CPKIFCertificate);
00021 FD_SMART_PTR(CPKIFPathSettings);
00022 class CPKIFCertificatePath;
00023 
00024 // forward declaration
00025 struct CPKIFX509CRLCheckerImpl;
00026 
00027 struct AssociatedCRLs
00028 {
00029     CPKIFCRLPtr m_base;     //base CRL to related deltas
00030     CPKIFCRLList m_deltas;  //list of all deltas found for specified base
00031 };
00032 DECLARE_SMART_POINTERS(AssociatedCRLs);
00033 typedef std::vector<AssociatedCRLsPtr, PKIFAlloc<AssociatedCRLsPtr> > AssociatedCRLsList;
00042 class CAC_API CPKIFX509CRLChecker : public IPKIFColleague, public IPKIFRevocationStatus
00043 {
00044   friend struct CPKIFX509CRLCheckerImpl;
00045 public:
00046     CPKIFX509CRLChecker(void);
00047     virtual ~CPKIFX509CRLChecker(void);
00048 
00049     //ENUMS THAT DEFINED THE TYPE CLASSIFICATION SYSTEM USED BY THIS CLASS
00051     enum CERTTYPES {CT_EE_DP, CT_EE, CT_CA_DP, CT_CA, CT_UNSUPPORTED};
00053     enum CRLSCOPE {CS_COMPLETE, CS_DP, CS_DELTA, CS_DELTA_DP, CS_UNSUPPORTED};
00055     enum CRLCOVERAGE {CC_ALL, CC_EEONLY, CC_CAONLY, CC_UNSUPPORTED};
00057     enum CRLAUTHORITY {CA_DIRECT, CA_INDIRECT, CA_UNSUPPORTED};
00059     enum CRLREASONS {CR_ALLREASONS, CR_SOMEREASONS, CR_UNSUPPORTED};
00060 
00061     //IPKIFColleague functions
00062     void Initialize();
00063 
00064     //IPKIFRevocationStatus functions
00065     bool CheckStatus(const CPKIFCertificatePtr& targetCert, const CPKIFCertificatePtr& issuersCert, RevocationStatus& status, CPKIFCertStatusPtr& certStatus);
00066     bool CheckStatusPath(CPKIFCertificatePath& path, RevocationStatus& status);
00067 
00068     //misc functions
00069     void SetReasonCodesOfInterest(CPKIFReasonFlagsPtr& reasons);
00070     CPKIFReasonFlagsPtr GetReasonCodesOfInterest() const;
00071 
00072     CPKIFPathSettingsPtr GetPathSettings() const;
00073     void SetPathSettings(CPKIFPathSettingsPtr& settings);
00074 
00075 private:
00077     CPKIFX509CRLChecker(const CPKIFX509CRLChecker& copy);
00079     CPKIFX509CRLChecker& operator=(const CPKIFX509CRLChecker& rhs); //added 4/6/2004
00080 
00081     enum {thisComponent=TOOLKIT_PATH_CRL_CHECKER};
00082 
00083     CPKIFX509CRLCheckerImpl *m_impl;    
00084 };
00085 DECLARE_SMART_POINTERS(CPKIFX509CRLChecker);
00086 
00087 #endif

Generated on Mon Nov 15 11:15:55 2010 for PublicKeyInfrastructureFramework(PKIF) by  doxygen 1.5.6