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