00001 /*---------------------------------------------------------------------\ 00002 | | 00003 | _ _ _ _ __ _ | 00004 | | | | | | \_/ | / \ | | | 00005 | | | | | | |_| | / /\ \ | | | 00006 | | |__ | | | | | | / ____ \ | |__ | 00007 | |____||_| |_| |_|/ / \ \|____| | 00008 | | 00009 | ca-mgm library | 00010 | | 00011 | (C) SUSE Linux Products GmbH | 00012 \----------------------------------------------------------------------/ 00013 00014 File: X509v3CRLGenerationExtensions.hpp 00015 00016 Author: <Michael Calmer> <mc@suse.de> 00017 Maintainer: <Michael Calmer> <mc@suse.de> 00018 00019 Purpose: 00020 00021 /-*/ 00022 00023 #ifndef LIMAL_CA_MGM_X509V3_CRL_GENERATION_EXTENSIONS_HPP 00024 #define LIMAL_CA_MGM_X509V3_CRL_GENERATION_EXTENSIONS_HPP 00025 00026 #include <limal/ca-mgm/config.h> 00027 #include <limal/ca-mgm/CommonData.hpp> 00028 #include <limal/ca-mgm/AuthorityKeyIdentifierGenerateExtension.hpp> 00029 #include <limal/ca-mgm/IssuerAlternativeNameExtension.hpp> 00030 #include <blocxx/COWIntrusiveReference.hpp> 00031 00032 namespace LIMAL_NAMESPACE 00033 { 00034 namespace CA_MGM_NAMESPACE 00035 { 00036 00037 class CA; 00038 class CAConfig; 00039 class X509v3CRLGenerationExtsImpl; 00040 00046 class X509v3CRLGenerationExts { 00047 public: 00048 X509v3CRLGenerationExts(); 00049 X509v3CRLGenerationExts(CAConfig* caConfig, Type type); 00050 X509v3CRLGenerationExts(const X509v3CRLGenerationExts& extensions); 00051 virtual ~X509v3CRLGenerationExts(); 00052 00053 #ifndef SWIG 00054 00055 X509v3CRLGenerationExts& 00056 operator=(const X509v3CRLGenerationExts& extension); 00057 00058 #endif 00059 00060 void 00061 setAuthorityKeyIdentifier(const AuthorityKeyIdentifierGenerateExt &ext); 00062 00063 AuthorityKeyIdentifierGenerateExt 00064 getAuthorityKeyIdentifier() const; 00065 00066 AuthorityKeyIdentifierGenerateExt& 00067 authorityKeyIdentifier(); 00068 00069 void 00070 setIssuerAlternativeName(const IssuerAlternativeNameExt &ext); 00071 00072 IssuerAlternativeNameExt 00073 getIssuerAlternativeName() const; 00074 00075 IssuerAlternativeNameExt& 00076 issuerAlternativeName(); 00077 00078 void 00079 commit2Config(CA& ca, Type type) const; 00080 00081 virtual bool 00082 valid() const; 00083 00084 virtual blocxx::StringArray 00085 verify() const; 00086 00087 virtual blocxx::StringArray 00088 dump() const; 00089 00090 private: 00091 blocxx::COWIntrusiveReference<X509v3CRLGenerationExtsImpl> m_impl; 00092 00093 }; 00094 00095 } 00096 } 00097 #endif //LIMAL_CA_MGM_X509V3_CRL_GENERATION_EXTENSIONS_HPP