00001 /*---------------------------------------------------------------------\ 00002 | | 00003 | _ _ _ _ __ _ | 00004 | | | | | | \_/ | / \ | | | 00005 | | | | | | |_| | / /\ \ | | | 00006 | | |__ | | | | | | / ____ \ | |__ | 00007 | |____||_| |_| |_|/ / \ \|____| | 00008 | | 00009 | ca-mgm library | 00010 | | 00011 | (C) SUSE Linux Products GmbH | 00012 \----------------------------------------------------------------------/ 00013 00014 File: CertificateIssueData.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_CERTIFICATE_ISSUE_DATAHPP 00024 #define LIMAL_CA_MGM_CERTIFICATE_ISSUE_DATAHPP 00025 00026 #include <limal/ca-mgm/config.h> 00027 #include <limal/ca-mgm/CommonData.hpp> 00028 #include <limal/ca-mgm/CA.hpp> 00029 #include <limal/ca-mgm/X509v3CertificateIssueExtensions.hpp> 00030 #include <blocxx/COWIntrusiveReference.hpp> 00031 00032 namespace LIMAL_NAMESPACE 00033 { 00034 namespace CA_MGM_NAMESPACE 00035 { 00036 00037 class CertificateIssueDataImpl; 00038 00044 class CertificateIssueData { 00045 public: 00046 CertificateIssueData(); 00047 00052 CertificateIssueData(CAConfig* caConfig, Type type); 00053 00054 CertificateIssueData(const CertificateIssueData& data); 00055 00056 virtual ~CertificateIssueData(); 00057 00058 #ifndef SWIG 00059 00060 CertificateIssueData& 00061 operator=(const CertificateIssueData& data); 00062 00063 #endif 00064 00065 void 00066 setCertifyPeriode(time_t start, time_t end); 00067 00068 time_t 00069 getStartDate() const; 00070 00071 time_t 00072 getEndDate() const; 00073 00077 blocxx::String 00078 getStartDateAsString() const; 00079 00083 blocxx::String 00084 getEndDateAsString() const; 00085 00086 void 00087 setMessageDigest(MD md); 00088 00089 MD 00090 getMessageDigest() const; 00091 00092 void 00093 setExtensions(const X509v3CertificateIssueExts& ext); 00094 00095 X509v3CertificateIssueExts 00096 getExtensions() const; 00097 00098 X509v3CertificateIssueExts& 00099 extensions(); 00100 00104 void 00105 commit2Config(CA& ca, Type type) const; 00106 00112 virtual bool 00113 valid() const; 00114 00122 virtual blocxx::StringArray 00123 verify() const; 00124 00128 virtual blocxx::StringArray 00129 dump() const; 00130 00131 private: 00132 blocxx::COWIntrusiveReference<CertificateIssueDataImpl> m_impl; 00133 00134 00135 }; 00136 00137 } 00138 } 00139 #endif //LIMAL_CA_MGM_CERTIFICATE_ISSUE_DATA_HPP