Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(40)

Side by Side Diff: chrome/browser/extensions/api/platform_keys/platform_keys_api.cc

Issue 1452853002: Convert vector_as_array to vector::data in //chrome{,cast,os}. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@vector-data
Patch Set: Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 112 matching lines...) Expand 10 before | Expand all | Expand 10 after
123 ExtensionFunction::ResponseAction 123 ExtensionFunction::ResponseAction
124 PlatformKeysInternalGetPublicKeyFunction::Run() { 124 PlatformKeysInternalGetPublicKeyFunction::Run() {
125 scoped_ptr<api_pki::GetPublicKey::Params> params( 125 scoped_ptr<api_pki::GetPublicKey::Params> params(
126 api_pki::GetPublicKey::Params::Create(*args_)); 126 api_pki::GetPublicKey::Params::Create(*args_));
127 EXTENSION_FUNCTION_VALIDATE(params); 127 EXTENSION_FUNCTION_VALIDATE(params);
128 128
129 const std::vector<char>& cert_der = params->certificate; 129 const std::vector<char>& cert_der = params->certificate;
130 if (cert_der.empty()) 130 if (cert_der.empty())
131 return RespondNow(Error(platform_keys::kErrorInvalidX509Cert)); 131 return RespondNow(Error(platform_keys::kErrorInvalidX509Cert));
132 scoped_refptr<net::X509Certificate> cert_x509 = 132 scoped_refptr<net::X509Certificate> cert_x509 =
133 net::X509Certificate::CreateFromBytes(vector_as_array(&cert_der), 133 net::X509Certificate::CreateFromBytes(cert_der.data(), cert_der.size());
134 cert_der.size());
135 if (!cert_x509) 134 if (!cert_x509)
136 return RespondNow(Error(platform_keys::kErrorInvalidX509Cert)); 135 return RespondNow(Error(platform_keys::kErrorInvalidX509Cert));
137 136
138 PublicKeyInfo key_info; 137 PublicKeyInfo key_info;
139 key_info.public_key_spki_der = 138 key_info.public_key_spki_der =
140 chromeos::platform_keys::GetSubjectPublicKeyInfo(cert_x509); 139 chromeos::platform_keys::GetSubjectPublicKeyInfo(cert_x509);
141 if (!chromeos::platform_keys::GetPublicKey(cert_x509, &key_info.key_type, 140 if (!chromeos::platform_keys::GetPublicKey(cert_x509, &key_info.key_type,
142 &key_info.key_size_bits) || 141 &key_info.key_size_bits) ||
143 key_info.key_type != net::X509Certificate::kPublicKeyTypeRSA) { 142 key_info.key_type != net::X509Certificate::kPublicKeyTypeRSA) {
144 return RespondNow(Error(kErrorAlgorithmNotSupported)); 143 return RespondNow(Error(kErrorAlgorithmNotSupported));
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
199 } 198 }
200 199
201 scoped_ptr<net::CertificateList> client_certs; 200 scoped_ptr<net::CertificateList> client_certs;
202 if (params->details.client_certs) { 201 if (params->details.client_certs) {
203 client_certs.reset(new net::CertificateList); 202 client_certs.reset(new net::CertificateList);
204 for (const std::vector<char>& client_cert_der : 203 for (const std::vector<char>& client_cert_der :
205 *params->details.client_certs) { 204 *params->details.client_certs) {
206 if (client_cert_der.empty()) 205 if (client_cert_der.empty())
207 return RespondNow(Error(platform_keys::kErrorInvalidX509Cert)); 206 return RespondNow(Error(platform_keys::kErrorInvalidX509Cert));
208 scoped_refptr<net::X509Certificate> client_cert_x509 = 207 scoped_refptr<net::X509Certificate> client_cert_x509 =
209 net::X509Certificate::CreateFromBytes( 208 net::X509Certificate::CreateFromBytes(client_cert_der.data(),
210 vector_as_array(&client_cert_der), client_cert_der.size()); 209 client_cert_der.size());
211 if (!client_cert_x509) 210 if (!client_cert_x509)
212 return RespondNow(Error(platform_keys::kErrorInvalidX509Cert)); 211 return RespondNow(Error(platform_keys::kErrorInvalidX509Cert));
213 client_certs->push_back(client_cert_x509); 212 client_certs->push_back(client_cert_x509);
214 } 213 }
215 } 214 }
216 215
217 content::WebContents* web_contents = nullptr; 216 content::WebContents* web_contents = nullptr;
218 if (params->details.interactive) { 217 if (params->details.interactive) {
219 web_contents = GetSenderWebContents(); 218 web_contents = GetSenderWebContents();
220 219
(...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after
382 result.debug_errors.push_back(kCertStatusErrors[i].name); 381 result.debug_errors.push_back(kCertStatusErrors[i].name);
383 } 382 }
384 } 383 }
385 } 384 }
386 385
387 Respond(ArgumentList( 386 Respond(ArgumentList(
388 api_pk::VerifyTLSServerCertificate::Results::Create(result))); 387 api_pk::VerifyTLSServerCertificate::Results::Create(result)));
389 } 388 }
390 389
391 } // namespace extensions 390 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698