00001 00009 #ifndef __NameConstraints_H__ 00010 #define __NameConstraints_H__ 00011 00012 #if _MSC_VER > 1000 00013 #pragma once 00014 #endif // _MSC_VER > 1000 00015 00016 00017 #include "PKIFdll.h" 00018 #define CAC_API_FACTORY 00019 00020 #include "X509Extension.h" 00021 #include <vector> 00022 00023 struct CPKIFNameConstraintsImpl; 00024 FD_LIST_PTR(CPKIFGeneralSubtree); 00025 00045 class CAC_API CPKIFNameConstraints : public CPKIFX509Extension 00046 { 00047 public: 00048 CPKIFNameConstraints(); 00049 //CPKIFNameConstraints(const CACX509V3Extension& ext); 00050 CPKIFNameConstraints(const bool& criticality, const CPKIFBufferPtr& ext); 00051 virtual ~CPKIFNameConstraints(); 00052 00053 static char extOID[]; 00054 const CPKIFOIDPtr oid() const; 00055 00056 CPKIFGeneralSubtreeListPtr GetPermitted() const; 00057 CPKIFGeneralSubtreeListPtr GetExcluded() const; 00058 void SetPermitted(CPKIFGeneralSubtreeListPtr &); 00059 void SetExcluded(CPKIFGeneralSubtreeListPtr &); 00060 00061 CPKIFBufferPtr value() const; 00062 00063 private: 00064 CPKIFNameConstraints(const CPKIFNameConstraints& ext); 00065 CPKIFNameConstraints& operator=(const CPKIFNameConstraints& rhs); //added 4/6/2004 00066 00067 struct CPKIFNameConstraintsImpl *m_impl; 00068 }; 00069 DECLARE_SMART_POINTERS(CPKIFNameConstraints); 00070 00071 00072 CAC_API std::ostream& operator<<(std::ostream & os, const CPKIFNameConstraintsPtr & extension); 00073 CAC_API std::ostream& operator<<(std::ostream & os, const CPKIFNameConstraints & extension); 00074 00075 #endif