00001 00009 #ifndef __X509Extension_H__ 00010 #define __X509Extension_H__ 00011 00012 #if _MSC_VER > 1000 00013 #pragma once 00014 #endif // _MSC_VER > 1000 00015 00016 00017 #include "PKIFdll.h" 00018 00019 #include <iosfwd> 00020 00021 #define CAC_API_FACTORY 00022 00023 struct CPKIFX509ExtensionImpl; 00024 00025 FD_SMART_PTR(CPKIFOID); 00026 FD_SMART_PTR(CPKIFBuffer); 00027 00035 class CAC_API CPKIFX509Extension 00036 { 00037 public: 00038 CPKIFX509Extension(); 00039 //CPKIFX509Extension(const CACX509V3Extension& refExtension); 00040 CPKIFX509Extension (const bool& criticality, const CPKIFBufferPtr& value); 00041 CPKIFX509Extension (const CPKIFOIDPtr& oid, const bool& criticality, const CPKIFBufferPtr& value); 00042 00043 virtual ~CPKIFX509Extension(); 00044 00045 void SetCriticality(bool b); 00046 bool isCritical() const; 00047 virtual const CPKIFOIDPtr oid() const; 00048 00049 00050 bool operator==(const CPKIFX509Extension& rhs); 00051 00052 virtual void value(const CPKIFBufferPtr &value); 00053 00054 //CPKIFBufferPtr value() const; 00055 00056 virtual CPKIFBufferPtr value() const; 00057 00058 CPKIFBufferPtr Encode(); 00059 00060 private: 00061 CPKIFX509Extension(const CPKIFX509Extension& refExtension); 00062 CPKIFX509Extension& operator=(const CPKIFX509Extension& rhs); //added 4/6/2004 00063 00064 struct CPKIFX509ExtensionImpl *m_impl; 00065 }; 00066 DECLARE_SMART_POINTERS(CPKIFX509Extension); 00067 00068 CAC_API std::ostream& operator<<(std::ostream & os, const CPKIFX509ExtensionPtr & extension); 00069 CAC_API std::ostream& operator<<(std::ostream & os, const CPKIFX509Extension & extension); 00070 00071 #endif