limal-ca-mgm
X509v3CertificateIssueExtensions.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:       X509v3CertificateIssueExtensions.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_X509V_CERTIFICATE_ISSUE_EXTENSIONS_HPP
00024 #define    LIMAL_CA_MGM_X509V_CERTIFICATE_ISSUE_EXTENSIONS_HPP
00025 
00026 #include  <limal/ca-mgm/config.h>
00027 #include  <limal/ca-mgm/CommonData.hpp>
00028 #include  <limal/ca-mgm/StringExtensions.hpp>
00029 #include  <limal/ca-mgm/BitExtensions.hpp>
00030 #include  <limal/ca-mgm/ExtendedKeyUsageExt.hpp>
00031 #include  <limal/ca-mgm/BasicConstraintsExtension.hpp>
00032 #include  <limal/ca-mgm/SubjectKeyIdentifierExtension.hpp>
00033 #include  <limal/ca-mgm/SubjectKeyIdentifierExtension.hpp>
00034 #include  <limal/ca-mgm/AuthorityKeyIdentifierGenerateExtension.hpp>
00035 #include  <limal/ca-mgm/SubjectAlternativeNameExtension.hpp>
00036 #include  <limal/ca-mgm/IssuerAlternativeNameExtension.hpp>
00037 #include  <limal/ca-mgm/AuthorityInfoAccessExtension.hpp>
00038 #include  <limal/ca-mgm/CRLDistributionPointsExtension.hpp>
00039 #include  <limal/ca-mgm/CertificatePoliciesExtension.hpp>
00040 #include  <blocxx/COWIntrusiveReference.hpp>
00041 
00042 namespace LIMAL_NAMESPACE
00043 {
00044 namespace CA_MGM_NAMESPACE
00045 {
00046 
00047         class CA;
00048         class CAConfig;
00049         class X509v3CertificateIssueExtsImpl;
00050         
00056         class X509v3CertificateIssueExts {
00057         public:
00058                 X509v3CertificateIssueExts();
00059                 X509v3CertificateIssueExts(CAConfig* caConfig, Type type);
00060                 X509v3CertificateIssueExts(const X509v3CertificateIssueExts& extensions);
00061                 virtual ~X509v3CertificateIssueExts();
00062 
00063 #ifndef SWIG
00064 
00065                 X509v3CertificateIssueExts&
00066                 operator=(const X509v3CertificateIssueExts& extensions);
00067 
00068 #endif
00069                 
00070                 void
00071                 setNsBaseUrl(const NsBaseUrlExt &ext);
00072         
00073                 NsBaseUrlExt
00074                 getNsBaseUrl() const;
00075 
00076                 NsBaseUrlExt&
00077                 nsBaseUrl();
00078 
00079                 void
00080                 setNsRevocationUrl(const NsRevocationUrlExt &ext);
00081         
00082                 NsRevocationUrlExt
00083                 getNsRevocationUrl() const;
00084 
00085                 NsRevocationUrlExt&
00086                 nsRevocationUrl();
00087 
00088                 void
00089                 setNsCaRevocationUrl(const NsCaRevocationUrlExt &ext);
00090         
00091                 NsCaRevocationUrlExt
00092                 getNsCaRevocationUrl() const;
00093 
00094                 NsCaRevocationUrlExt&
00095                 nsCaRevocationUrl();
00096 
00097                 void
00098                 setNsRenewalUrl(const NsRenewalUrlExt &ext);
00099         
00100                 NsRenewalUrlExt
00101                 getNsRenewalUrl() const;
00102 
00103                 NsRenewalUrlExt&
00104                 nsRenewalUrl();
00105 
00106                 void
00107                 setNsCaPolicyUrl(const NsCaPolicyUrlExt &ext);
00108         
00109                 NsCaPolicyUrlExt
00110                 getNsCaPolicyUrl() const;
00111 
00112                 NsCaPolicyUrlExt&
00113                 nsCaPolicyUrl();
00114 
00115                 void
00116                 setNsSslServerName(const NsSslServerNameExt &ext);
00117         
00118                 NsSslServerNameExt
00119                 getNsSslServerName() const;
00120 
00121                 NsSslServerNameExt&
00122                 nsSslServerName();
00123 
00124                 void
00125                 setNsComment(const NsCommentExt &ext);
00126         
00127                 NsCommentExt
00128                 getNsComment() const;
00129 
00130                 NsCommentExt&
00131                 nsComment();
00132 
00133                 void
00134                 setNsCertType(const NsCertTypeExt &ext);
00135         
00136                 NsCertTypeExt
00137                 getNsCertType() const;
00138 
00139                 NsCertTypeExt&
00140                 nsCertType();
00141 
00142                 void
00143                 setKeyUsage(const KeyUsageExt &ext);
00144         
00145                 KeyUsageExt
00146                 getKeyUsage() const;
00147 
00148                 KeyUsageExt&
00149                 keyUsage();
00150 
00151                 void
00152                 setBasicConstraints(const BasicConstraintsExt &ext);
00153         
00154                 BasicConstraintsExt
00155                 getBasicConstraints() const;
00156 
00157                 BasicConstraintsExt&
00158                 basicConstraints();
00159 
00160                 void
00161                 setExtendedKeyUsage(const ExtendedKeyUsageExt &ext);
00162         
00163                 ExtendedKeyUsageExt
00164                 getExtendedKeyUsage() const;
00165 
00166                 ExtendedKeyUsageExt&
00167                 extendedKeyUsage();
00168 
00169                 void
00170                 setSubjectKeyIdentifier(const SubjectKeyIdentifierExt &ext);
00171         
00172                 SubjectKeyIdentifierExt
00173                 getSubjectKeyIdentifier() const;
00174 
00175                 SubjectKeyIdentifierExt&
00176                 subjectKeyIdentifier();
00177 
00178                 void
00179                 setAuthorityKeyIdentifier(const AuthorityKeyIdentifierGenerateExt &ext);
00180         
00181                 AuthorityKeyIdentifierGenerateExt
00182                 getAuthorityKeyIdentifier() const;
00183 
00184                 AuthorityKeyIdentifierGenerateExt&
00185                 authorityKeyIdentifier();
00186 
00187                 void
00188                 setSubjectAlternativeName(const SubjectAlternativeNameExt &ext);
00189         
00190                 SubjectAlternativeNameExt
00191                 getSubjectAlternativeName() const;
00192 
00193                 SubjectAlternativeNameExt&
00194                 subjectAlternativeName();
00195 
00196                 void
00197                 setIssuerAlternativeName(const IssuerAlternativeNameExt &ext);
00198         
00199                 IssuerAlternativeNameExt
00200                 getIssuerAlternativeName() const;
00201 
00202                 IssuerAlternativeNameExt&
00203                 issuerAlternativeName();
00204                                                                      
00205                 void
00206                 setAuthorityInfoAccess(const AuthorityInfoAccessExt &ext);
00207         
00208                 AuthorityInfoAccessExt
00209                 getAuthorityInfoAccess() const;
00210 
00211                 AuthorityInfoAccessExt&
00212                 authorityInfoAccess();
00213 
00214                 void
00215                 setCRLDistributionPoints(const CRLDistributionPointsExt &ext);
00216         
00217                 CRLDistributionPointsExt
00218                 getCRLDistributionPoints() const;
00219 
00220                 CRLDistributionPointsExt&
00221                 crlDistributionPoints();
00222 
00223                 void
00224                 setCertificatePolicies(const CertificatePoliciesExt &ext);
00225         
00226                 CertificatePoliciesExt
00227                 getCertificatePolicies() const;
00228 
00229                 CertificatePoliciesExt&
00230                 certificatePolicies();
00231 
00232                 void
00233                 commit2Config(CA& ca, Type type) const;
00234 
00235                 virtual bool
00236                 valid() const;
00237         
00238                 virtual blocxx::StringArray
00239                 verify() const;
00240 
00241                 virtual blocxx::StringArray
00242                 dump() const;
00243 
00244         private:
00245                 blocxx::COWIntrusiveReference<X509v3CertificateIssueExtsImpl> m_impl;
00246 
00247         };
00248 
00249 }
00250 }
00251 
00252 #endif // LIMAL_CA_MGM_X509V_CERTIFICATE_ISSUE_EXTENSIONS_HPP