00001 00009 #ifndef __ExtendedKeyUsage_H__ 00010 #define __ExtendedKeyUsage_H__ 00011 00012 #if _MSC_VER > 1000 00013 #pragma once 00014 #endif // _MSC_VER > 1000 00015 00016 #include "PKIFdll.h" 00017 #define CAC_API_FACTORY 00018 00019 #include "X509Extension.h" 00020 00021 #include <vector> 00022 #include <iosfwd> 00023 00024 // forward declaration 00025 struct CPKIFExtendedKeyUsageImpl; 00026 00040 class CAC_API CPKIFExtendedKeyUsage : public CPKIFX509Extension 00041 { 00042 public: 00043 CPKIFExtendedKeyUsage(); 00044 //CPKIFExtendedKeyUsage(const CACX509V3Extension& ext); 00045 CPKIFExtendedKeyUsage(const bool& criticality, const CPKIFBufferPtr& ext); 00046 virtual ~CPKIFExtendedKeyUsage(); 00047 00048 void KeyPurposeIDs(std::vector<CPKIFOIDPtr>& keyPurposeIDs); 00053 static char extOID[]; 00054 const CPKIFOIDPtr oid() const; 00055 00056 CPKIFBufferPtr value() const; 00057 00058 private: 00059 CPKIFExtendedKeyUsage(const CPKIFExtendedKeyUsage& ext); 00060 CPKIFExtendedKeyUsage& operator=(const CPKIFExtendedKeyUsage& rhs); //added 4/6/2004 00061 00062 struct CPKIFExtendedKeyUsageImpl *m_impl; 00063 }; 00064 DECLARE_SMART_POINTERS(CPKIFExtendedKeyUsage); 00065 00066 CAC_API std::ostream& operator<<(std::ostream & os, const CPKIFExtendedKeyUsagePtr & extension); 00067 CAC_API std::ostream& operator<<(std::ostream & os, const CPKIFExtendedKeyUsage & extension); 00068 00069 #endif