PathResults.h

Go to the documentation of this file.
00001 
00011 #ifndef __PATHRESULTS_H__
00012 #define __PATHRESULTS_H__
00013 
00014 #include "PKIFdll.h"
00015 #include "PathConstants.h"
00016 
00017 // forward declarations
00018 FD_SMART_PTR(CPKIFAlgorithmIdentifier);
00019 struct CPKIFPathValidationResultsImpl;
00020 
00021 FD_LIST_PTR(CPKIFPolicyInformation);
00022 FD_SMART_PTR(CPKIFAlgorithmIdentifier);
00023 FD_SMART_PTR(IPKIFExtHandlerData);
00024 FD_SMART_PTR(CPKIFCertStatus);
00025 FD_SMART_PTR(IPKIFTrustAnchor);
00026 FD_SMART_PTR(CPKIFCertificateNodeEntry);
00027 FD_LIST_PTR(CPKIFGeneralSubtree);
00028 #include <vector>
00029 
00039 class CAC_API CPKIFPathValidationResults
00040 {
00041 public:
00042     CPKIFPathValidationResults();
00043     virtual ~CPKIFPathValidationResults();
00044 
00045     //path processing outputs
00046     //  a) indication of success or failure
00047     bool PathSuccessfullyValidated() const;
00048 
00049     bool GetBasicChecksSuccessfullyPerformed() const;
00050     void SetBasicChecksSuccessfullyPerformed(bool b);
00051 
00052     bool GetCertSignaturesVerified() const;
00053     void SetCertSignaturesVerified(bool b);
00054 
00055     //added these 04/16/2003
00056     bool GetTargetIsTrustAnchor() const;
00057     void SetTargetIsTrustAnchor(bool b);
00058 
00059     RevocationStatus GetRevocationStatusMostSevere() const;
00060     void SetRevocationStatusMostSevere(RevocationStatus r);
00061 
00062     //CPKIFCRLEntryPtr GetCRLEntry() const {return m_crlEntry;}
00063     //void SetCRLEntry(CPKIFCRLEntryPtr& crlEntry){m_crlEntry = crlEntry;};
00064     CPKIFCertStatusPtr GetCertStatus() const;
00065     void SetCertStatus(CPKIFCertStatusPtr& certStatus);
00066 
00067     //  b) if failure, a diagnostic code indicating the reason
00068     int DiagnosticCode() const;
00069 
00070     //  c) authority constrained policy set
00071     //  f) details of any policy mapping (contained in auth set)
00072     void SetAuthorityConstrainedSet(std::vector<CPKIFPolicyInformationListPtr>* authSet);
00073     const std::vector<CPKIFPolicyInformationListPtr>* GetAuthorityConstrainedSetTable();
00074     void GetAuthorityConstrainedSet(CPKIFPolicyInformationListPtr& authSet); 
00075 
00076     //  d) user constrained policy set
00077     void GetUserConstrainedSet(CPKIFPolicyInformationListPtr& userSet);
00078     void SetUserConstrainedSet(CPKIFPolicyInformationListPtr& userSet);
00079 
00080     //  e) explicit policy indicator
00081     bool GetExplicitPolicyIndicator() const;
00082     void SetExplicitPolicyIndicator(bool e);
00083 
00084     //  f) cert being processed when failure occurred
00085     void SetCertificate(CPKIFCertificateNodeEntryPtr& cert);
00086     CPKIFCertificateNodeEntryPtr GetCertificate() const;
00087 
00088     //working parameters
00089     void SetWorkingParams(CPKIFAlgorithmIdentifierPtr& wp);
00090     CPKIFAlgorithmIdentifierPtr GetWorkingParams() const;
00091 
00092     //state information for application defined extension handlers
00093     void SetExtHandlerData(const std::string& id, IPKIFExtHandlerDataPtr& data);
00094     IPKIFExtHandlerDataPtr GetExtHandlerData(const std::string& id) const;
00095 
00096     //extension handler checks
00097     bool GetExtensionHandlerChecksSuccessfullyPerformed() const;
00098     void SetExtensionHandlerChecksSuccessfullyPerformed(bool b);
00099 
00100     //convenience reference to the trust anchor from the path
00101     IPKIFTrustAnchorPtr GetTrustAnchor() const;
00102     void SetTrustAnchor(IPKIFTrustAnchorPtr& ta);
00103 
00104     //allow access to the final values of internal state variables from RFC 5280 path processing
00105     bool IsPermittedSubtreesSet();
00106     CPKIFGeneralSubtreeListPtr GetPermittedSubtrees() const;
00107     void SetPermittedSubtrees(CPKIFGeneralSubtreeListPtr& subtree);
00108 
00109     bool IsExcludedSubtreesSet();
00110     CPKIFGeneralSubtreeListPtr GetExcludedSubtrees() const;
00111     void SetExcludedSubtrees(CPKIFGeneralSubtreeListPtr& subtree);
00112 
00113     bool IsPendingExplicitPolicySet();
00114     int GetPendingExplicitPolicy() const;
00115     void SetPendingExplicitPolicy(int skipCerts);
00116 
00117     bool IsPendingPolicyMappingSet();
00118     int GetPendingPolicyMapping() const;
00119     void SetPendingPolicyMapping(int skipCerts);
00120     
00121     bool IsPendingAnyPolicySet();
00122     int GetPendingAnyPolicy() const;
00123     void SetPendingAnyPolicy(int skipCerts);
00124 
00125     bool IsPendingPathLengthSet();
00126     int GetPendingPathLength() const;
00127     void SetPendingPathLength(int certs);
00128 
00129 private:
00131     CPKIFPathValidationResults(const CPKIFPathValidationResults& copy);
00133     CPKIFPathValidationResults& operator=(const CPKIFPathValidationResults& rhs); //added 4/6/2004
00134 
00135     CPKIFPathValidationResultsImpl *m_impl;
00136 };
00137 DECLARE_SMART_POINTERS(CPKIFPathValidationResults);
00138 
00139 typedef const std::vector<CPKIFPolicyInformationListPtr>* CPKIFAuthorityConstrainedSetTable;
00140 #endif

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