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