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_ISSUER_ALTERNATIVE_NAME_EXTENSION_HPP
00023 #define LIMAL_CA_MGM_ISSUER_ALTERNATIVE_NAME_EXTENSION_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 <limal/ca-mgm/LiteralValues.hpp>
00029 #include <blocxx/COWIntrusiveReference.hpp>
00030
00031 namespace LIMAL_NAMESPACE {
00032
00033 namespace CA_MGM_NAMESPACE {
00034
00035 class CA;
00036 class CAConfig;
00037 class IssuerAlternativeNameExtImpl;
00038
00039 class IssuerAlternativeNameExt : public ExtensionBase {
00040 public:
00041 IssuerAlternativeNameExt();
00042
00043 IssuerAlternativeNameExt(bool copyIssuer,
00044 const blocxx::List<LiteralValue> &alternativeNameList);
00045
00046 IssuerAlternativeNameExt(CAConfig* caConfig, Type type);
00047
00048 IssuerAlternativeNameExt(const IssuerAlternativeNameExt& extension);
00049
00050 virtual ~IssuerAlternativeNameExt();
00051
00052 #ifndef SWIG
00053
00054 IssuerAlternativeNameExt&
00055 operator=(const IssuerAlternativeNameExt& extension);
00056
00057 #endif
00058
00059 void
00060 setCopyIssuer(bool copyIssuer);
00061
00062 bool
00063 getCopyIssuer() const;
00064
00065 void
00066 setAlternativeNameList(const blocxx::List<LiteralValue> &alternativeNameList);
00067
00068 blocxx::List<LiteralValue>
00069 getAlternativeNameList() const;
00070
00071 void
00072 addIssuerAltName(const LiteralValue& altName);
00073
00074 virtual void
00075 commit2Config(CA& ca, Type type) const;
00076
00077 virtual bool
00078 valid() const;
00079
00080 virtual blocxx::StringArray
00081 verify() const;
00082
00083 virtual blocxx::StringArray
00084 dump() const;
00085
00086 private:
00087 blocxx::COWIntrusiveReference<IssuerAlternativeNameExtImpl> m_impl;
00088
00089 };
00090
00091 }
00092 }
00093
00094 #endif // LIMAL_CA_MGM_ISSUER_ALTERNATIVE_NAME_EXTENSION_HPP