limal-ca-mgm
ExtendedKeyUsageExt.hpp
Go to the documentation of this file.
00001 /*---------------------------------------------------------------------\
00002 |                                                                      |
00003 |                     _     _   _   _     __     _                     |
00004 |                    | |   | | | \_/ |   /  \   | |                    |
00005 |                    | |   | | | |_| |  / /\ \  | |                    |
00006 |                    | |__ | | | | | | / ____ \ | |__                  |
00007 |                    |____||_| |_| |_|/ /    \ \|____|                 |
00008 |                                                                      |
00009 |                             ca-mgm library                           |
00010 |                                                                      |
00011 |                                         (C) SUSE Linux Products GmbH |
00012 \----------------------------------------------------------------------/
00013 
00014   File:       ExtendedKeyUsageExt.hpp
00015 
00016   Author:     <Michael Calmer>     <mc@suse.de>
00017   Maintainer: <Michael Calmer>     <mc@suse.de>
00018 
00019   Purpose:
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