OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 #include "chrome/browser/chromeos/certificate_provider/certificate_provider_serv
ice.h" | 5 #include "chrome/browser/chromeos/certificate_provider/certificate_provider_serv
ice.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 | 8 |
9 #include <utility> | 9 #include <utility> |
10 | 10 |
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
106 public: | 106 public: |
107 // Any calls back to |service| will be posted to |service_task_runner|. | 107 // Any calls back to |service| will be posted to |service_task_runner|. |
108 // |service| must be dereferenceable on |service_task_runner|. | 108 // |service| must be dereferenceable on |service_task_runner|. |
109 SSLPrivateKey( | 109 SSLPrivateKey( |
110 const std::string& extension_id, | 110 const std::string& extension_id, |
111 const CertificateInfo& cert_info, | 111 const CertificateInfo& cert_info, |
112 const scoped_refptr<base::SequencedTaskRunner>& service_task_runner, | 112 const scoped_refptr<base::SequencedTaskRunner>& service_task_runner, |
113 const base::WeakPtr<CertificateProviderService>& service); | 113 const base::WeakPtr<CertificateProviderService>& service); |
114 | 114 |
115 // net::SSLPrivateKey: | 115 // net::SSLPrivateKey: |
116 Type GetType() override; | |
117 std::vector<net::SSLPrivateKey::Hash> GetDigestPreferences() override; | 116 std::vector<net::SSLPrivateKey::Hash> GetDigestPreferences() override; |
118 size_t GetMaxSignatureLengthInBytes() override; | |
119 void SignDigest(Hash hash, | 117 void SignDigest(Hash hash, |
120 const base::StringPiece& input, | 118 const base::StringPiece& input, |
121 const SignCallback& callback) override; | 119 const SignCallback& callback) override; |
122 | 120 |
123 private: | 121 private: |
124 ~SSLPrivateKey() override; | 122 ~SSLPrivateKey() override; |
125 | 123 |
126 static void SignDigestOnServiceTaskRunner( | 124 static void SignDigestOnServiceTaskRunner( |
127 const base::WeakPtr<CertificateProviderService>& service, | 125 const base::WeakPtr<CertificateProviderService>& service, |
128 const std::string& extension_id, | 126 const std::string& extension_id, |
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
220 : extension_id_(extension_id), | 218 : extension_id_(extension_id), |
221 cert_info_(cert_info), | 219 cert_info_(cert_info), |
222 service_task_runner_(service_task_runner), | 220 service_task_runner_(service_task_runner), |
223 service_(service), | 221 service_(service), |
224 weak_factory_(this) { | 222 weak_factory_(this) { |
225 // This constructor is called on |service_task_runner|. Only subsequent calls | 223 // This constructor is called on |service_task_runner|. Only subsequent calls |
226 // to member functions have to be on a common thread. | 224 // to member functions have to be on a common thread. |
227 thread_checker_.DetachFromThread(); | 225 thread_checker_.DetachFromThread(); |
228 } | 226 } |
229 | 227 |
230 CertificateProviderService::SSLPrivateKey::Type | |
231 CertificateProviderService::SSLPrivateKey::GetType() { | |
232 DCHECK(thread_checker_.CalledOnValidThread()); | |
233 return cert_info_.type; | |
234 } | |
235 | |
236 std::vector<net::SSLPrivateKey::Hash> | 228 std::vector<net::SSLPrivateKey::Hash> |
237 CertificateProviderService::SSLPrivateKey::GetDigestPreferences() { | 229 CertificateProviderService::SSLPrivateKey::GetDigestPreferences() { |
238 DCHECK(thread_checker_.CalledOnValidThread()); | 230 DCHECK(thread_checker_.CalledOnValidThread()); |
239 return cert_info_.supported_hashes; | 231 return cert_info_.supported_hashes; |
240 } | 232 } |
241 | 233 |
242 size_t | |
243 CertificateProviderService::SSLPrivateKey::GetMaxSignatureLengthInBytes() { | |
244 DCHECK(thread_checker_.CalledOnValidThread()); | |
245 return cert_info_.max_signature_length_in_bytes; | |
246 } | |
247 | |
248 // static | 234 // static |
249 void CertificateProviderService::SSLPrivateKey::SignDigestOnServiceTaskRunner( | 235 void CertificateProviderService::SSLPrivateKey::SignDigestOnServiceTaskRunner( |
250 const base::WeakPtr<CertificateProviderService>& service, | 236 const base::WeakPtr<CertificateProviderService>& service, |
251 const std::string& extension_id, | 237 const std::string& extension_id, |
252 const scoped_refptr<net::X509Certificate>& certificate, | 238 const scoped_refptr<net::X509Certificate>& certificate, |
253 Hash hash, | 239 Hash hash, |
254 const std::string& input, | 240 const std::string& input, |
255 const SignCallback& callback) { | 241 const SignCallback& callback) { |
256 if (!service) { | 242 if (!service) { |
257 const std::vector<uint8_t> no_signature; | 243 const std::vector<uint8_t> no_signature; |
(...skipping 214 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
472 const int sign_request_id = sign_requests_.AddRequest(extension_id, callback); | 458 const int sign_request_id = sign_requests_.AddRequest(extension_id, callback); |
473 if (!delegate_->DispatchSignRequestToExtension(extension_id, sign_request_id, | 459 if (!delegate_->DispatchSignRequestToExtension(extension_id, sign_request_id, |
474 hash, certificate, digest)) { | 460 hash, certificate, digest)) { |
475 sign_requests_.RemoveRequest(extension_id, sign_request_id, | 461 sign_requests_.RemoveRequest(extension_id, sign_request_id, |
476 nullptr /* callback */); | 462 nullptr /* callback */); |
477 callback.Run(net::ERR_FAILED, std::vector<uint8_t>()); | 463 callback.Run(net::ERR_FAILED, std::vector<uint8_t>()); |
478 } | 464 } |
479 } | 465 } |
480 | 466 |
481 } // namespace chromeos | 467 } // namespace chromeos |
OLD | NEW |