| Index: chrome/browser/extensions/api/enterprise_platform_keys/enterprise_platform_keys_api.cc
|
| diff --git a/chrome/browser/extensions/api/enterprise_platform_keys/enterprise_platform_keys_api.cc b/chrome/browser/extensions/api/enterprise_platform_keys/enterprise_platform_keys_api.cc
|
| index f120fc4e17a27f798b28ea533275590c19349d1d..8bb7dec25a7923124b73ddd8c4efab642539434e 100644
|
| --- a/chrome/browser/extensions/api/enterprise_platform_keys/enterprise_platform_keys_api.cc
|
| +++ b/chrome/browser/extensions/api/enterprise_platform_keys/enterprise_platform_keys_api.cc
|
| @@ -5,6 +5,7 @@
|
| #include "chrome/browser/extensions/api/enterprise_platform_keys/enterprise_platform_keys_api.h"
|
|
|
| #include "base/bind.h"
|
| +#include "base/stl_util.h"
|
| #include "base/values.h"
|
| #include "chrome/browser/chromeos/platform_keys/platform_keys.h"
|
| #include "chrome/browser/chromeos/platform_keys/platform_keys_service.h"
|
| @@ -93,8 +94,8 @@ void EnterprisePlatformKeysInternalGenerateKeyFunction::OnGeneratedKey(
|
| const std::string& error_message) {
|
| DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI));
|
| if (error_message.empty()) {
|
| - Respond(
|
| - ArgumentList(api_epki::GenerateKey::Results::Create(public_key_der)));
|
| + Respond(ArgumentList(api_epki::GenerateKey::Results::Create(
|
| + std::vector<char>(public_key_der.begin(), public_key_der.end()))));
|
| } else {
|
| Respond(Error(error_message));
|
| }
|
| @@ -132,9 +133,8 @@ EnterprisePlatformKeysInternalSignFunction::Run() {
|
|
|
| service->Sign(
|
| platform_keys_token_id,
|
| - params->public_key,
|
| - hash_algorithm,
|
| - params->data,
|
| + std::string(params->public_key.begin(), params->public_key.end()),
|
| + hash_algorithm, std::string(params->data.begin(), params->data.end()),
|
| extension_id(),
|
| base::Bind(&EnterprisePlatformKeysInternalSignFunction::OnSigned, this));
|
| return RespondLater();
|
| @@ -144,10 +144,12 @@ void EnterprisePlatformKeysInternalSignFunction::OnSigned(
|
| const std::string& signature,
|
| const std::string& error_message) {
|
| DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI));
|
| - if (error_message.empty())
|
| - Respond(ArgumentList(api_epki::Sign::Results::Create(signature)));
|
| - else
|
| + if (error_message.empty()) {
|
| + Respond(ArgumentList(api_epki::Sign::Results::Create(
|
| + std::vector<char>(signature.begin(), signature.end()))));
|
| + } else {
|
| Respond(Error(error_message));
|
| + }
|
| }
|
|
|
| EnterprisePlatformKeysGetCertificatesFunction::
|
| @@ -209,9 +211,10 @@ EnterprisePlatformKeysImportCertificateFunction::Run() {
|
| if (!ValidateToken(params->token_id, &platform_keys_token_id))
|
| return RespondNow(Error(kErrorInvalidToken));
|
|
|
| - const std::string& cert_der = params->certificate;
|
| + const std::vector<char>& cert_der = params->certificate;
|
| scoped_refptr<net::X509Certificate> cert_x509 =
|
| - net::X509Certificate::CreateFromBytes(cert_der.data(), cert_der.size());
|
| + net::X509Certificate::CreateFromBytes(vector_as_array(&cert_der),
|
| + cert_der.size());
|
| if (!cert_x509.get())
|
| return RespondNow(Error(kErrorInvalidX509Cert));
|
|
|
| @@ -247,9 +250,10 @@ EnterprisePlatformKeysRemoveCertificateFunction::Run() {
|
| if (!ValidateToken(params->token_id, &platform_keys_token_id))
|
| return RespondNow(Error(kErrorInvalidToken));
|
|
|
| - const std::string& cert_der = params->certificate;
|
| + const std::vector<char>& cert_der = params->certificate;
|
| scoped_refptr<net::X509Certificate> cert_x509 =
|
| - net::X509Certificate::CreateFromBytes(cert_der.data(), cert_der.size());
|
| + net::X509Certificate::CreateFromBytes(vector_as_array(&cert_der),
|
| + cert_der.size());
|
| if (!cert_x509.get())
|
| return RespondNow(Error(kErrorInvalidX509Cert));
|
|
|
|
|