limal-ca-mgm
X509v3CRLGenerationExtensions.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:       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