00001 00009 #ifndef __SubjectAltName_H__ 00010 #define __SubjectAltName_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 CAC_API 00019 #define CAC_API_FACTORY 00020 00021 #include "X509Extension.h" 00022 #include <vector> 00023 #include <iosfwd> 00024 00025 struct CPKIFSubjectAltNameImpl; 00026 FD_LIST_PTR(CPKIFGeneralName); 00027 00043 class CAC_API CPKIFSubjectAltName : public CPKIFX509Extension 00044 { 00045 public: 00046 CPKIFSubjectAltName(); 00047 //CPKIFSubjectAltName(const CACX509V3Extension& ext); 00048 CPKIFSubjectAltName(const bool& criticality, const CPKIFBufferPtr& ext); 00049 virtual ~CPKIFSubjectAltName(); 00050 00051 static char extOID[]; 00052 const CPKIFOIDPtr oid() const; 00053 00054 void GeneralNames(CPKIFGeneralNameList& genNames) const; 00055 00056 CPKIFBufferPtr value() const; 00057 00058 private: 00060 CPKIFSubjectAltName(const CPKIFSubjectAltName& ext); 00062 CPKIFSubjectAltName& operator=(const CPKIFSubjectAltName& rhs); //added 4/6/2004 00063 00064 struct CPKIFSubjectAltNameImpl *m_impl; 00065 }; 00066 DECLARE_SMART_POINTERS(CPKIFSubjectAltName); 00067 00068 CAC_API std::ostream& operator<<(std::ostream & os, const CPKIFSubjectAltNamePtr & extension); 00069 CAC_API std::ostream& operator<<(std::ostream & os, const CPKIFSubjectAltName & extension); 00070 #endif