BasicChecksUtils.h

Go to the documentation of this file.
00001 
00009 #ifndef __BASICCHECKSUTILS_H__
00010 #define __BASICCHECKSUTILS_H__
00011 
00012 #include "PKIFdll.h"
00013 
00014 #include <bitset>
00015 #include <vector>
00016 
00017 FD_LIST_PTR(CPKIFGeneralSubtree);
00018 FD_SMART_PTR(CPKIFPolicyInformationSet);
00019 FD_SMART_PTR(CPKIFPolicyMappings);
00020 FD_SMART_PTR(CPKIFCertificate);
00021 FD_SMART_PTR(CPKIFCertificateNodeListWithSourceInfo);
00022 FD_LIST_PTR(CPKIFNameAndKeyWithScore);
00023 FD_LIST_PTR(CPKIFPolicyInformation);
00024 FD_LIST_PTR(CPKIFCertificateSource);
00025 
00026 class CPKIFCertificatePath;
00027 class CPKIFPathValidationResults;
00028 class IPKIFCryptoRawOperations;
00029 class IPKIFCryptoMisc;
00030 
00031 
00032 void CAC_API FindErrorAndSetOnResults(const CPKIFCertificatePath& path, CPKIFPathValidationResults& results);
00033 
00034 //utility functions related to NameConstraints
00035 void CAC_API IntersectSubtrees(CPKIFGeneralSubtreeListPtr& authSetCondensed, CPKIFGeneralSubtreeListPtr& initSet, CPKIFGeneralSubtreeListPtr& userSet);
00036 bool CheckNameConstraints(CPKIFCertificatePtr& curCert, CPKIFGeneralSubtreeListPtr& permSubtrees, CPKIFGeneralSubtreeListPtr& exclSubtrees, bool permSubtreesHasBeenSet);
00037 
00038 //functions that operate on (complete) paths
00039 bool CAC_API PathSigChecker(const CPKIFCertificatePath& path, IPKIFCryptoRawOperations* crypto, IPKIFCryptoMisc* cryptoMisc, CPKIFPathValidationResults& results);
00040 
00041 //predicate function to facilitate use of smart pointer node
00042 //removed export declarations 8/18/2004
00043 bool IsEmpty(CPKIFCertificateNodeListWithSourceInfoPtr& node);
00044 bool IsEmptyNameAndKey(CPKIFNameAndKeyWithScoreListPtr& node);
00045 bool IsNullCertificateSourceList(CPKIFCertificateSourceListPtr& node);
00046 
00047 //unary function to use with find_if when determining if rows in the authSet contain any policy
00048 bool RowContainsAnyPolicy(const CPKIFPolicyInformationListPtr& test);
00049 
00050 //function to produce the intersection of two sets
00051 void CAC_API IntersectSets(CPKIFPolicyInformationListPtr& authSetCondensed, CPKIFPolicyInformationListPtr& initSet, CPKIFPolicyInformationListPtr& userSet);
00052 
00053 //function to perform essentially all authSet-related policy processing
00054 void AddPoliciesToAuthSet(const CPKIFPolicyInformationSetPtr& certPols, const std::bitset<3>& indicators,
00055                           std::vector<CPKIFPolicyInformationListPtr>& authSet, bool isSelfIssued, bool isIntermediate);
00056 
00057 //function that processes policy mapping extensions
00058 void ProcessPolicyMapping(const CPKIFPolicyMappingsPtr& policyMappings, const std::bitset<3>& indicators, 
00059                           std::vector<CPKIFPolicyInformationListPtr>& authSet);
00060 
00061 //structure used when processing policy mapping
00063 struct IssuerDomainMappingList
00064 {
00072     IssuerDomainMappingList() {m_next = NULL; m_bProcessed = false;}
00073     CPKIFPolicyInformationPtr m_issuerDomain;
00074     CPKIFPolicyInformationList m_subjectDomains;
00075     bool m_bProcessed;
00076     struct IssuerDomainMappingList* m_next;
00077 };
00079 //class used to collect mappings
00080 #include "CIssuerDomainMappingList.h"
00081 
00082 //class used with find_if to determine if a row contains a particular policy set
00083 #include "RowDoesContainPolicyInSet.h"
00084 
00085 
00086 
00087 
00088 //class used with find_if to determine if a row does not contain a particular policy set
00089 #include "RowDoesNotContainPolicyInSet.h"
00090 
00091 
00092 
00093 //class used with find_if to determine if an entry in a row matches a given policy
00094 //used when producing an intersection
00095 #include "MatchesPolicy.h"
00096 
00097 
00098 
00099 #endif
00100 

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