OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef NET_BASE_DEFAULT_ORIGIN_BOUND_CERT_STORE_H_ | 5 #ifndef NET_BASE_DEFAULT_ORIGIN_BOUND_CERT_STORE_H_ |
6 #define NET_BASE_DEFAULT_ORIGIN_BOUND_CERT_STORE_H_ | 6 #define NET_BASE_DEFAULT_ORIGIN_BOUND_CERT_STORE_H_ |
7 #pragma once | 7 #pragma once |
8 | 8 |
9 #include <map> | 9 #include <map> |
10 #include <string> | 10 #include <string> |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
48 virtual ~DefaultOriginBoundCertStore(); | 48 virtual ~DefaultOriginBoundCertStore(); |
49 | 49 |
50 // Flush the backing store (if any) to disk and post the given task when done. | 50 // Flush the backing store (if any) to disk and post the given task when done. |
51 // WARNING: THE CALLBACK WILL RUN ON A RANDOM THREAD. IT MUST BE THREAD SAFE. | 51 // WARNING: THE CALLBACK WILL RUN ON A RANDOM THREAD. IT MUST BE THREAD SAFE. |
52 // It may be posted to the current thread, or it may run on the thread that | 52 // It may be posted to the current thread, or it may run on the thread that |
53 // actually does the flushing. Your Task should generally post a notification | 53 // actually does the flushing. Your Task should generally post a notification |
54 // to the thread you actually want to be notified on. | 54 // to the thread you actually want to be notified on. |
55 void FlushStore(const base::Closure& completion_task); | 55 void FlushStore(const base::Closure& completion_task); |
56 | 56 |
57 // OriginBoundCertStore implementation. | 57 // OriginBoundCertStore implementation. |
58 virtual bool GetOriginBoundCert(const std::string& origin, | 58 virtual bool GetOriginBoundCert( |
59 std::string* private_key_result, | 59 const std::string& origin, |
60 std::string* cert_result) OVERRIDE; | 60 SSLClientCertType* type, |
61 virtual void SetOriginBoundCert(const std::string& origin, | 61 std::string* private_key_result, |
62 const std::string& private_key, | 62 std::string* cert_result) OVERRIDE; |
63 const std::string& cert) OVERRIDE; | 63 virtual void SetOriginBoundCert( |
| 64 const std::string& origin, |
| 65 SSLClientCertType type, |
| 66 const std::string& private_key, |
| 67 const std::string& cert) OVERRIDE; |
64 virtual void DeleteOriginBoundCert(const std::string& origin) OVERRIDE; | 68 virtual void DeleteOriginBoundCert(const std::string& origin) OVERRIDE; |
65 virtual void DeleteAll() OVERRIDE; | 69 virtual void DeleteAll() OVERRIDE; |
66 virtual void GetAllOriginBoundCerts( | 70 virtual void GetAllOriginBoundCerts( |
67 std::vector<OriginBoundCertInfo>* origin_bound_certs) OVERRIDE; | 71 std::vector<OriginBoundCertInfo>* origin_bound_certs) OVERRIDE; |
68 virtual int GetCertCount() OVERRIDE; | 72 virtual int GetCertCount() OVERRIDE; |
69 | 73 |
70 private: | 74 private: |
71 static const size_t kMaxCerts; | 75 static const size_t kMaxCerts; |
72 | 76 |
73 // Deletes all of the certs. Does not delete them from |store_|. | 77 // Deletes all of the certs. Does not delete them from |store_|. |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
112 | 116 |
113 DISALLOW_COPY_AND_ASSIGN(DefaultOriginBoundCertStore); | 117 DISALLOW_COPY_AND_ASSIGN(DefaultOriginBoundCertStore); |
114 }; | 118 }; |
115 | 119 |
116 // The OriginBoundCert class contains a private key in addition to the origin | 120 // The OriginBoundCert class contains a private key in addition to the origin |
117 // and the cert. | 121 // and the cert. |
118 class NET_EXPORT DefaultOriginBoundCertStore::OriginBoundCert { | 122 class NET_EXPORT DefaultOriginBoundCertStore::OriginBoundCert { |
119 public: | 123 public: |
120 OriginBoundCert(); | 124 OriginBoundCert(); |
121 OriginBoundCert(const std::string& origin, | 125 OriginBoundCert(const std::string& origin, |
| 126 SSLClientCertType type, |
122 const std::string& privatekey, | 127 const std::string& privatekey, |
123 const std::string& cert); | 128 const std::string& cert); |
124 | 129 |
125 const std::string& origin() const { return origin_; } | 130 const std::string& origin() const { return origin_; } |
| 131 SSLClientCertType type() const { return type_; } |
126 const std::string& private_key() const { return private_key_; } | 132 const std::string& private_key() const { return private_key_; } |
127 const std::string& cert() const { return cert_; } | 133 const std::string& cert() const { return cert_; } |
128 | 134 |
129 private: | 135 private: |
130 std::string origin_; | 136 std::string origin_; |
| 137 SSLClientCertType type_; |
131 std::string private_key_; | 138 std::string private_key_; |
132 std::string cert_; | 139 std::string cert_; |
133 }; | 140 }; |
134 | 141 |
135 typedef base::RefCountedThreadSafe<DefaultOriginBoundCertStore::PersistentStore> | 142 typedef base::RefCountedThreadSafe<DefaultOriginBoundCertStore::PersistentStore> |
136 RefcountedPersistentStore; | 143 RefcountedPersistentStore; |
137 | 144 |
138 class NET_EXPORT DefaultOriginBoundCertStore::PersistentStore | 145 class NET_EXPORT DefaultOriginBoundCertStore::PersistentStore |
139 : public RefcountedPersistentStore { | 146 : public RefcountedPersistentStore { |
140 public: | 147 public: |
(...skipping 19 matching lines...) Expand all Loading... |
160 protected: | 167 protected: |
161 PersistentStore(); | 168 PersistentStore(); |
162 | 169 |
163 private: | 170 private: |
164 DISALLOW_COPY_AND_ASSIGN(PersistentStore); | 171 DISALLOW_COPY_AND_ASSIGN(PersistentStore); |
165 }; | 172 }; |
166 | 173 |
167 } // namespace net | 174 } // namespace net |
168 | 175 |
169 #endif // NET_DEFAULT_ORIGIN_BOUND_CERT_STORE_H_ | 176 #endif // NET_DEFAULT_ORIGIN_BOUND_CERT_STORE_H_ |
OLD | NEW |