| 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/extensions/api/platform_keys/platform_keys_api.h" | 5 #include "chrome/browser/extensions/api/platform_keys/platform_keys_api.h" |
| 6 | 6 |
| 7 #include <vector> | 7 #include <vector> |
| 8 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/logging.h" | 10 #include "base/logging.h" |
| (...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 161 chromeos::PlatformKeysServiceFactory::GetForBrowserContext( | 161 chromeos::PlatformKeysServiceFactory::GetForBrowserContext( |
| 162 browser_context()); | 162 browser_context()); |
| 163 DCHECK(service); | 163 DCHECK(service); |
| 164 | 164 |
| 165 chromeos::platform_keys::ClientCertificateRequest request; | 165 chromeos::platform_keys::ClientCertificateRequest request; |
| 166 for (const std::vector<char>& cert_authority : | 166 for (const std::vector<char>& cert_authority : |
| 167 params->details.request.certificate_authorities) { | 167 params->details.request.certificate_authorities) { |
| 168 request.certificate_authorities.push_back( | 168 request.certificate_authorities.push_back( |
| 169 std::string(cert_authority.begin(), cert_authority.end())); | 169 std::string(cert_authority.begin(), cert_authority.end())); |
| 170 } | 170 } |
| 171 for (const api_pk::ClientCertificateType& cert_type : |
| 172 params->details.request.certificate_types) { |
| 173 switch (cert_type) { |
| 174 case api_pk::CLIENT_CERTIFICATE_TYPE_ECDSASIGN: |
| 175 request.certificate_key_types.push_back( |
| 176 net::X509Certificate::kPublicKeyTypeECDSA); |
| 177 break; |
| 178 case api_pk::CLIENT_CERTIFICATE_TYPE_RSASIGN: |
| 179 request.certificate_key_types.push_back( |
| 180 net::X509Certificate::kPublicKeyTypeRSA); |
| 181 break; |
| 182 case api_pk::CLIENT_CERTIFICATE_TYPE_NONE: |
| 183 NOTREACHED(); |
| 184 } |
| 185 } |
| 171 content::WebContents* web_contents = nullptr; | 186 content::WebContents* web_contents = nullptr; |
| 172 if (params->details.interactive) { | 187 if (params->details.interactive) { |
| 173 web_contents = GetSenderWebContents(); | 188 web_contents = GetSenderWebContents(); |
| 174 | 189 |
| 175 // Ensure that this function is called in a context that allows opening | 190 // Ensure that this function is called in a context that allows opening |
| 176 // dialogs. | 191 // dialogs. |
| 177 if (!web_contents || | 192 if (!web_contents || |
| 178 !web_modal::PopupManager::FromWebContents(web_contents)) { | 193 !web_modal::PopupManager::FromWebContents(web_contents)) { |
| 179 return RespondNow(Error(kErrorInteractiveCallFromBackground)); | 194 return RespondNow(Error(kErrorInteractiveCallFromBackground)); |
| 180 } | 195 } |
| (...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 283 const std::string& error_message) { | 298 const std::string& error_message) { |
| 284 DCHECK_CURRENTLY_ON(content::BrowserThread::UI); | 299 DCHECK_CURRENTLY_ON(content::BrowserThread::UI); |
| 285 if (error_message.empty()) | 300 if (error_message.empty()) |
| 286 Respond(ArgumentList(api_pki::Sign::Results::Create( | 301 Respond(ArgumentList(api_pki::Sign::Results::Create( |
| 287 std::vector<char>(signature.begin(), signature.end())))); | 302 std::vector<char>(signature.begin(), signature.end())))); |
| 288 else | 303 else |
| 289 Respond(Error(error_message)); | 304 Respond(Error(error_message)); |
| 290 } | 305 } |
| 291 | 306 |
| 292 } // namespace extensions | 307 } // namespace extensions |
| OLD | NEW |