limal-ca-mgm
CRLGenerationData.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:       CRLGenerationData.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_CRL_GENERATION_DATA_HPP
00024 #define    LIMAL_CA_MGM_CRL_GENERATION_DATA_HPP
00025 
00026 #include  <limal/ca-mgm/config.h>
00027 #include  <limal/ca-mgm/CommonData.hpp>
00028 #include  <limal/ca-mgm/X509v3CRLGenerationExtensions.hpp>
00029 #include  <blocxx/COWIntrusiveReference.hpp>
00030 
00031 namespace LIMAL_NAMESPACE
00032 {
00033 namespace CA_MGM_NAMESPACE
00034 {
00035 
00036         class CA;
00037         class CRLGenerationDataImpl;
00043         class CRLGenerationData {
00044         public:
00045                 CRLGenerationData();
00046                 CRLGenerationData(CAConfig* caConfig, Type type);
00047                 CRLGenerationData(blocxx::UInt32 hours, 
00048                                   const X509v3CRLGenerationExts& ext);
00049                 CRLGenerationData(const CRLGenerationData& data);
00050                 virtual ~CRLGenerationData();
00051         
00052 #ifndef SWIG
00053 
00054                 CRLGenerationData&
00055                 operator=(const CRLGenerationData& data);
00056 
00057 #endif
00058                 
00059                 void
00060                 setCRLLifeTime(blocxx::UInt32 hours);
00061         
00062                 blocxx::UInt32
00063                 getCRLLifeTime() const;
00064 
00065                 void
00066                 setExtensions(const X509v3CRLGenerationExts& ext);
00067         
00068                 X509v3CRLGenerationExts
00069                 getExtensions() const;
00070 
00071                 X509v3CRLGenerationExts&
00072                 extensions();
00073 
00074                 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<CRLGenerationDataImpl> m_impl;
00088 
00089         };
00090 
00091 }
00092 }
00093 
00094 #endif // LIMAL_CA_MGM_CRL_GENERATION_DATA_HPP