00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef LIMAL_CA_MGM_EXTENDED_KEY_USAGE_EXT_HPP
00023 #define LIMAL_CA_MGM_EXTENDED_KEY_USAGE_EXT_HPP
00024
00025 #include <limal/ca-mgm/config.h>
00026 #include <limal/ca-mgm/CommonData.hpp>
00027 #include <limal/ca-mgm/ExtensionBase.hpp>
00028 #include <blocxx/COWIntrusiveReference.hpp>
00029
00030 namespace LIMAL_NAMESPACE {
00031
00032 namespace CA_MGM_NAMESPACE {
00033
00034 class CA;
00035 class CAConfig;
00036 class ExtendedKeyUsageExtImpl;
00037
00044 class ExtendedKeyUsageExt : public ExtensionBase {
00045 public:
00046 ExtendedKeyUsageExt();
00047 ExtendedKeyUsageExt(CAConfig* caConfig, Type type);
00048
00053 ExtendedKeyUsageExt(const StringList& extKeyUsages);
00054
00055 ExtendedKeyUsageExt(const ExtendedKeyUsageExt& extension);
00056
00057 virtual ~ExtendedKeyUsageExt();
00058
00059 #ifndef SWIG
00060
00061 ExtendedKeyUsageExt&
00062 operator=(const ExtendedKeyUsageExt& extension);
00063
00064 #endif
00065
00085 void
00086 setExtendedKeyUsage(const StringList& usageList);
00087
00088
00092 StringList
00093 getExtendedKeyUsage() const;
00094
00098 bool
00099 isEnabledFor(const String& extKeyUsage) const;
00100
00101
00108 virtual void
00109 commit2Config(CA& ca, Type type) const;
00110
00116 virtual bool
00117 valid() const;
00118
00126 virtual blocxx::StringArray
00127 verify() const;
00128
00132 virtual blocxx::StringArray
00133 dump() const;
00134
00135 private:
00136 blocxx::COWIntrusiveReference<ExtendedKeyUsageExtImpl> m_impl;
00137
00138 bool
00139 checkValue(const String& value) const;
00140
00141 };
00142
00143 }
00144 }
00145
00146 #endif //LIMAL_CA_MGM_EXTENDED_KEY_USAGE_EXT_HPP