00001 /*---------------------------------------------------------------------\ 00002 | | 00003 | _ _ _ _ __ _ | 00004 | | | | | | \_/ | / \ | | | 00005 | | | | | | |_| | / /\ \ | | | 00006 | | |__ | | | | | | / ____ \ | |__ | 00007 | |____||_| |_| |_|/ / \ \|____| | 00008 | | 00009 | ca-mgm library | 00010 | | 00011 | (C) SUSE Linux Products GmbH | 00012 \----------------------------------------------------------------------/ 00013 00014 File: X509v3CertificateExtensions.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_X509V3_CERTIFICATE_EXTENSION_HPP 00023 #define LIMAL_CA_MGM_X509V3_CERTIFICATE_EXTENSION_HPP 00024 00025 #include <limal/ca-mgm/config.h> 00026 #include <limal/ca-mgm/CommonData.hpp> 00027 #include <limal/ca-mgm/StringExtensions.hpp> 00028 #include <limal/ca-mgm/BitExtensions.hpp> 00029 #include <limal/ca-mgm/ExtendedKeyUsageExt.hpp> 00030 #include <limal/ca-mgm/BasicConstraintsExtension.hpp> 00031 #include <limal/ca-mgm/SubjectKeyIdentifierExtension.hpp> 00032 #include <limal/ca-mgm/SubjectKeyIdentifierExtension.hpp> 00033 #include <limal/ca-mgm/AuthorityKeyIdentifierExtension.hpp> 00034 #include <limal/ca-mgm/SubjectAlternativeNameExtension.hpp> 00035 #include <limal/ca-mgm/IssuerAlternativeNameExtension.hpp> 00036 #include <limal/ca-mgm/AuthorityInfoAccessExtension.hpp> 00037 #include <limal/ca-mgm/CRLDistributionPointsExtension.hpp> 00038 #include <limal/ca-mgm/CertificatePoliciesExtension.hpp> 00039 #include <blocxx/COWIntrusiveReference.hpp> 00040 00041 namespace LIMAL_NAMESPACE { 00042 00043 namespace CA_MGM_NAMESPACE { 00044 00045 class X509v3CertificateExtsImpl; 00046 00050 class X509v3CertificateExts { 00051 public: 00052 X509v3CertificateExts(const X509v3CertificateExts& extensions); 00053 virtual ~X509v3CertificateExts(); 00054 00055 #ifndef SWIG 00056 00057 X509v3CertificateExts& 00058 operator=(const X509v3CertificateExts& extensions); 00059 00060 #endif 00061 00062 NsBaseUrlExt 00063 getNsBaseUrl() const; 00064 00065 NsRevocationUrlExt 00066 getNsRevocationUrl() const; 00067 00068 NsCaRevocationUrlExt 00069 getNsCaRevocationUrl() const; 00070 00071 NsRenewalUrlExt 00072 getNsRenewalUrl() const; 00073 00074 NsCaPolicyUrlExt 00075 getNsCaPolicyUrl() const; 00076 00077 NsSslServerNameExt 00078 getNsSslServerName() const; 00079 00080 NsCommentExt 00081 getNsComment() const; 00082 00083 NsCertTypeExt 00084 getNsCertType() const; 00085 00086 KeyUsageExt 00087 getKeyUsage() const; 00088 00089 BasicConstraintsExt 00090 getBasicConstraints() const; 00091 00092 ExtendedKeyUsageExt 00093 getExtendedKeyUsage() const; 00094 00095 SubjectKeyIdentifierExt 00096 getSubjectKeyIdentifier() const; 00097 00098 AuthorityKeyIdentifierExt 00099 getAuthorityKeyIdentifier() const; 00100 00101 SubjectAlternativeNameExt 00102 getSubjectAlternativeName() const; 00103 00104 IssuerAlternativeNameExt 00105 getIssuerAlternativeName() const; 00106 00107 AuthorityInfoAccessExt 00108 getAuthorityInfoAccess() const; 00109 00110 CRLDistributionPointsExt 00111 getCRLDistributionPoints() const; 00112 00113 CertificatePoliciesExt 00114 getCertificatePolicies() const; 00115 00116 virtual bool 00117 valid() const; 00118 00119 virtual blocxx::StringArray 00120 verify() const; 00121 00122 virtual blocxx::StringArray 00123 dump() const; 00124 00125 protected: 00126 blocxx::COWIntrusiveReference<X509v3CertificateExtsImpl> m_impl; 00127 00128 X509v3CertificateExts(); 00129 00130 }; 00131 00132 } 00133 } 00134 00135 #endif // LIMAL_CA_MGM_X509V3_CERTIFICATE_EXTENSION_HPP