limal-ca-mgm
CertificateData.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:       CertificateData.hpp
00015 
00016   Author:     <Michael Calmer>     <mc@suse.de>
00017   Maintainer: <Michael Calmer>     <mc@suse.de>
00018 
00019   Purpose:
00020 
00021 /-*/
00022 #ifndef    LIMAL_CA_MGM_CERTIFICATE_DATA_HPP
00023 #define    LIMAL_CA_MGM_CERTIFICATE_DATA_HPP
00024 
00025 #include  <limal/ca-mgm/config.h>
00026 #include  <limal/ca-mgm/CommonData.hpp>
00027 #include  <limal/ca-mgm/X509v3CertificateExtensions.hpp>
00028 #include  <limal/ca-mgm/DNObject.hpp>
00029 #include  <limal/ByteBuffer.hpp>
00030 #include  <blocxx/COWIntrusiveReference.hpp>
00031 
00032 namespace LIMAL_NAMESPACE {
00033 
00034 namespace CA_MGM_NAMESPACE {
00035 
00036         class CertificateDataImpl;
00037         
00043         class CertificateData {
00044         public:
00045                 CertificateData(const CertificateData& data);
00046 
00047                 virtual ~CertificateData();
00048 
00049 #ifndef SWIG
00050 
00051                 CertificateData&
00052                 operator=(const CertificateData& data);
00053 
00054 #endif
00055                 
00056                 blocxx::UInt32
00057                 getVersion() const;
00058         
00059                 String
00060                 getSerial() const;
00061         
00062                 time_t
00063                 getStartDate() const;
00064         
00065                 time_t
00066                 getEndDate() const;
00067         
00068                 DNObject
00069                 getIssuerDN() const;
00070         
00071                 DNObject
00072                 getSubjectDN() const;
00073         
00074                 blocxx::UInt32
00075                 getKeysize() const;
00076         
00077                 KeyAlg
00078                 getPublicKeyAlgorithm() const;
00079         
00080                 String
00081                 getPublicKeyAlgorithmAsString() const;
00082         
00083                 limal::ByteBuffer
00084                 getPublicKey() const;
00085         
00086                 SigAlg
00087                 getSignatureAlgorithm() const;
00088         
00089                 String
00090                 getSignatureAlgorithmAsString() const;
00091         
00092                 limal::ByteBuffer
00093                 getSignature() const;
00094         
00095                 String
00096                 getFingerprint() const;
00097         
00098                 X509v3CertificateExts
00099                 getExtensions() const;
00100 
00105                 String
00106                 getCertificateAsText() const;
00107 
00112                 String
00113                 getExtensionsAsText() const;
00114         
00115                 virtual bool
00116                 valid() const;
00117         
00118                 virtual blocxx::StringArray
00119                 verify() const;
00120 
00121                 virtual blocxx::StringArray
00122                 dump() const;
00123         
00124         protected:
00125                 CertificateData();
00126 
00127 
00128                 blocxx::COWIntrusiveReference<CertificateDataImpl> m_impl;
00129         };
00130 
00131 }
00132 }
00133 
00134 #endif // LIMAL_CA_MGM_CERTIFICATE_DATA_HPP