libcamgm
CertificatePoliciesExtension.hpp
Go to the documentation of this file.
1 /*---------------------------------------------------------------------\
2 | |
3 | _ _ _ _ __ _ |
4 | | | | | | \_/ | / \ | | |
5 | | | | | | |_| | / /\ \ | | |
6 | | |__ | | | | | | / ____ \ | |__ |
7 | |____||_| |_| |_|/ / \ \|____| |
8 | |
9 | ca-mgm library |
10 | |
11 | (C) SUSE Linux Products GmbH |
12 \----------------------------------------------------------------------/
13 
14  File: CertificatePoliciesExtension.hpp
15 
16  Author: <Michael Calmer> <mc@suse.de>
17  Maintainer: <Michael Calmer> <mc@suse.de>
18 
19  Purpose:
20 
21 /-*/
22 #ifndef CA_MGM_CERTIFICATE_POLICIES_EXTENSION_HPP
23 #define CA_MGM_CERTIFICATE_POLICIES_EXTENSION_HPP
24 
25 #include <ca-mgm/config.h>
26 #include <ca-mgm/CommonData.hpp>
27 #include <ca-mgm/ExtensionBase.hpp>
28 #include <ca-mgm/PtrTypes.hpp>
29 
30 namespace CA_MGM_NAMESPACE {
31 
32  class CA;
33  class CAConfig;
34  class UserNoticeImpl;
35  class CertificatePolicyImpl;
36  class CertificatePoliciesExtImpl;
37 
38  class UserNotice {
39  public:
40  UserNotice();
41  UserNotice(const UserNotice& notice);
42  virtual ~UserNotice();
43 
44 #ifndef SWIG
45 
46  UserNotice&
47  operator=(const UserNotice& notice);
48 
49 #endif
50 
51  void
52  initWithSection(CAConfig* caConfig, Type type, const std::string& sectionName);
53 
54  void
55  setExplicitText(const std::string& text);
56 
57  std::string
58  getExplicitText() const;
59 
60  void
61  setOrganizationNotice(const std::string& org,
62  const std::list<int32_t>& numbers);
63 
64  std::string
65  getOrganization() const;
66 
67  std::list<int32_t>
68  getNoticeNumbers() const;
69 
70  virtual std::string
71  commit2Config(CA& ca, Type type, uint32_t num) const;
72 
73  virtual bool
74  valid() const;
75 
76  virtual std::vector<std::string>
77  verify() const;
78 
79  virtual std::vector<std::string>
80  dump() const;
81 
82 #ifndef SWIG
83 
84  friend bool
85  operator==(const UserNotice &l, const UserNotice &r);
86 
87  friend bool
88  operator<(const UserNotice &l, const UserNotice &r);
89 
90 #endif
91 
92  private:
94 
95  };
96 
98  public:
100  CertificatePolicy(const std::string& policyIdetifier);
101  CertificatePolicy(const CertificatePolicy& policy);
102  virtual ~CertificatePolicy();
103 
104 #ifndef SWIG
105 
107  operator=(const CertificatePolicy& policy);
108 
109 #endif
110 
111  void
112  initWithSection(CAConfig* caConfig, Type type, const std::string& sectionName);
113 
114  void
115  setPolicyIdentifier(const std::string& policyIdentifier);
116 
117  std::string
118  getPolicyIdentifier() const;
119 
120  void
121  setCpsURI(const StringList& cpsURI);
122 
123  StringList
124  getCpsURI() const;
125 
126  void
127  setUserNoticeList(const std::list<UserNotice>& list);
128 
129  std::list<UserNotice>
130  getUserNoticeList() const;
131 
132  virtual std::string
133  commit2Config(CA& ca, Type type, uint32_t num) const;
134 
135  virtual bool
136  valid() const;
137 
138  virtual std::vector<std::string>
139  verify() const;
140 
141  virtual std::vector<std::string>
142  dump() const;
143 
144 #ifndef SWIG
145 
146  friend bool
147  operator==(const CertificatePolicy &l, const CertificatePolicy &r);
148 
149  friend bool
150  operator<(const CertificatePolicy &l, const CertificatePolicy &r);
151 
152 #endif
153 
154  private:
156 
157  std::vector<std::string>
158  checkCpsURIs(const StringList& cpsURIs) const;
159 
160  std::vector<std::string>
161  checkNoticeList(const std::list<UserNotice>& list) const;
162  };
163 
165  public:
167  CertificatePoliciesExt(const std::list<CertificatePolicy>& policies);
168  CertificatePoliciesExt(CAConfig* caConfig, Type type);
170  virtual ~CertificatePoliciesExt();
171 
172 #ifndef SWIG
173 
175  operator=(const CertificatePoliciesExt& extension);
176 
177 #endif
178 
179  void
180  enableIA5org(bool ia5org = true);
181 
182  bool
183  isIA5orgEnabled() const;
184 
185  void
186  setPolicies(const std::list<CertificatePolicy>& policies);
187 
188  std::list<CertificatePolicy>
189  getPolicies() const;
190 
191  virtual void
192  commit2Config(CA& ca, Type type) const;
193 
194  virtual bool
195  valid() const;
196 
197  virtual std::vector<std::string>
198  verify() const;
199 
200  virtual std::vector<std::string>
201  dump() const;
202 
203  private:
205 
206  std::vector<std::string>
207  checkPolicies(const std::list<CertificatePolicy>& pl) const;
208 
209  };
210 
211 }
212 
213 #endif // CA_MGM_CERTIFICATE_POLICIES_EXTENSION_HPP
Definition: ExtensionBase.hpp:34
Definition: CertificatePoliciesExtension.hpp:97
Managing a CA repository.
Definition: CA.hpp:54
ca_mgm::RWCOW_pointer< UserNoticeImpl > m_impl
Definition: CertificatePoliciesExtension.hpp:93
std::list< std::string > StringList
Definition: CommonData.hpp:37
Definition: CertificatePoliciesExtension.hpp:38
ca_mgm::RWCOW_pointer< CertificatePoliciesExtImpl > m_impl
Definition: CertificatePoliciesExtension.hpp:204
Definition: CAConfig.hpp:43
Definition: CertificatePoliciesExtension.hpp:164
Type
Definition: CommonData.hpp:39
ca_mgm::RWCOW_pointer< CertificatePolicyImpl > m_impl
Definition: CertificatePoliciesExtension.hpp:155
bool operator==(const PathName &lname, const PathName &rname)
Definition: PathName.hpp:435