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
00025 struct CPKIFX509CRLCheckerImpl;
00026
00027 struct AssociatedCRLs
00028 {
00029 CPKIFCRLPtr m_base;
00030 CPKIFCRLList m_deltas;
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
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
00062 void Initialize();
00063
00064
00065 bool CheckStatus(const CPKIFCertificatePtr& targetCert, const CPKIFCertificatePtr& issuersCert, RevocationStatus& status, CPKIFCertStatusPtr& certStatus);
00066 bool CheckStatusPath(CPKIFCertificatePath& path, RevocationStatus& status);
00067
00068
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);
00080
00081 enum {thisComponent=TOOLKIT_PATH_CRL_CHECKER};
00082
00083 CPKIFX509CRLCheckerImpl *m_impl;
00084 };
00085 DECLARE_SMART_POINTERS(CPKIFX509CRLChecker);
00086
00087 #endif