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

Unified Diff: chrome/browser/extensions/api/enterprise_platform_keys/enterprise_platform_keys_api.cc

Issue 847333004: Move parts from enterprise.platformKeysInternal to platformKeysInternal for reuse. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@cert_idl
Patch Set: Rebased. Created 5 years, 11 months 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 side-by-side diff with in-line comments
Download patch
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 8bb7dec25a7923124b73ddd8c4efab642539434e..f4b8f745c6974e7bdd88a82e2eded347313135ea 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
@@ -10,6 +10,7 @@
#include "chrome/browser/chromeos/platform_keys/platform_keys.h"
#include "chrome/browser/chromeos/platform_keys/platform_keys_service.h"
#include "chrome/browser/chromeos/platform_keys/platform_keys_service_factory.h"
+#include "chrome/browser/extensions/api/platform_keys/platform_keys_api.h"
#include "chrome/common/extensions/api/enterprise_platform_keys.h"
#include "chrome/common/extensions/api/enterprise_platform_keys_internal.h"
#include "content/public/browser/browser_thread.h"
@@ -24,39 +25,10 @@ namespace api_epki = api::enterprise_platform_keys_internal;
// This error will occur if a token is removed and will be exposed to the
// extension. Keep this in sync with the custom binding in Javascript.
-const char kErrorInvalidToken[] = "The token is not valid.";
-
const char kErrorInternal[] = "Internal Error.";
-const char kErrorAlgorithmNotSupported[] = "Algorithm not supported.";
+
const char kErrorInvalidX509Cert[] =
"Certificate is not a valid X.509 certificate.";
-const char kTokenIdUser[] = "user";
-const char kTokenIdSystem[] = "system";
-
-// Returns whether |token_id| references a known Token.
-bool ValidateToken(const std::string& token_id,
- std::string* platform_keys_token_id) {
- platform_keys_token_id->clear();
- if (token_id == kTokenIdUser) {
- *platform_keys_token_id = chromeos::platform_keys::kTokenIdUser;
- return true;
- }
- if (token_id == kTokenIdSystem) {
- *platform_keys_token_id = chromeos::platform_keys::kTokenIdSystem;
- return true;
- }
- return false;
-}
-
-std::string PlatformKeysTokenIdToApiId(
- const std::string& platform_keys_token_id) {
- if (platform_keys_token_id == chromeos::platform_keys::kTokenIdUser)
- return kTokenIdUser;
- if (platform_keys_token_id == chromeos::platform_keys::kTokenIdSystem)
- return kTokenIdSystem;
-
- return std::string();
-}
} // namespace
@@ -71,8 +43,8 @@ EnterprisePlatformKeysInternalGenerateKeyFunction::Run() {
// TODO(pneubeck): Add support for unsigned integers to IDL.
EXTENSION_FUNCTION_VALIDATE(params && params->modulus_length >= 0);
std::string platform_keys_token_id;
- if (!ValidateToken(params->token_id, &platform_keys_token_id))
- return RespondNow(Error(kErrorInvalidToken));
+ if (!platform_keys::ValidateToken(params->token_id, &platform_keys_token_id))
+ return RespondNow(Error(platform_keys::kErrorInvalidToken));
chromeos::PlatformKeysService* service =
chromeos::PlatformKeysServiceFactory::GetForBrowserContext(
@@ -101,57 +73,6 @@ void EnterprisePlatformKeysInternalGenerateKeyFunction::OnGeneratedKey(
}
}
-EnterprisePlatformKeysInternalSignFunction::
- ~EnterprisePlatformKeysInternalSignFunction() {
-}
-
-ExtensionFunction::ResponseAction
-EnterprisePlatformKeysInternalSignFunction::Run() {
- scoped_ptr<api_epki::Sign::Params> params(
- api_epki::Sign::Params::Create(*args_));
- EXTENSION_FUNCTION_VALIDATE(params);
- std::string platform_keys_token_id;
- if (!ValidateToken(params->token_id, &platform_keys_token_id))
- return RespondNow(Error(kErrorInvalidToken));
-
- chromeos::platform_keys::HashAlgorithm hash_algorithm;
- if (params->hash_algorithm_name == "SHA-1")
- hash_algorithm = chromeos::platform_keys::HASH_ALGORITHM_SHA1;
- else if (params->hash_algorithm_name == "SHA-256")
- hash_algorithm = chromeos::platform_keys::HASH_ALGORITHM_SHA256;
- else if (params->hash_algorithm_name == "SHA-384")
- hash_algorithm = chromeos::platform_keys::HASH_ALGORITHM_SHA384;
- else if (params->hash_algorithm_name == "SHA-512")
- hash_algorithm = chromeos::platform_keys::HASH_ALGORITHM_SHA512;
- else
- return RespondNow(Error(kErrorAlgorithmNotSupported));
-
- chromeos::PlatformKeysService* service =
- chromeos::PlatformKeysServiceFactory::GetForBrowserContext(
- browser_context());
- DCHECK(service);
-
- service->Sign(
- platform_keys_token_id,
- 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();
-}
-
-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(
- std::vector<char>(signature.begin(), signature.end()))));
- } else {
- Respond(Error(error_message));
- }
-}
-
EnterprisePlatformKeysGetCertificatesFunction::
~EnterprisePlatformKeysGetCertificatesFunction() {
}
@@ -162,8 +83,8 @@ EnterprisePlatformKeysGetCertificatesFunction::Run() {
api_epk::GetCertificates::Params::Create(*args_));
EXTENSION_FUNCTION_VALIDATE(params);
std::string platform_keys_token_id;
- if (!ValidateToken(params->token_id, &platform_keys_token_id))
- return RespondNow(Error(kErrorInvalidToken));
+ if (!platform_keys::ValidateToken(params->token_id, &platform_keys_token_id))
+ return RespondNow(Error(platform_keys::kErrorInvalidToken));
chromeos::platform_keys::GetCertificates(
platform_keys_token_id,
@@ -208,8 +129,8 @@ EnterprisePlatformKeysImportCertificateFunction::Run() {
api_epk::ImportCertificate::Params::Create(*args_));
EXTENSION_FUNCTION_VALIDATE(params);
std::string platform_keys_token_id;
- if (!ValidateToken(params->token_id, &platform_keys_token_id))
- return RespondNow(Error(kErrorInvalidToken));
+ if (!platform_keys::ValidateToken(params->token_id, &platform_keys_token_id))
+ return RespondNow(Error(platform_keys::kErrorInvalidToken));
const std::vector<char>& cert_der = params->certificate;
scoped_refptr<net::X509Certificate> cert_x509 =
@@ -247,8 +168,8 @@ EnterprisePlatformKeysRemoveCertificateFunction::Run() {
api_epk::RemoveCertificate::Params::Create(*args_));
EXTENSION_FUNCTION_VALIDATE(params);
std::string platform_keys_token_id;
- if (!ValidateToken(params->token_id, &platform_keys_token_id))
- return RespondNow(Error(kErrorInvalidToken));
+ if (!platform_keys::ValidateToken(params->token_id, &platform_keys_token_id))
+ return RespondNow(Error(platform_keys::kErrorInvalidToken));
const std::vector<char>& cert_der = params->certificate;
scoped_refptr<net::X509Certificate> cert_x509 =
@@ -305,7 +226,7 @@ void EnterprisePlatformKeysInternalGetTokensFunction::OnGotTokens(
platform_keys_token_ids->begin();
it != platform_keys_token_ids->end();
++it) {
- std::string token_id = PlatformKeysTokenIdToApiId(*it);
+ std::string token_id = platform_keys::PlatformKeysTokenIdToApiId(*it);
if (token_id.empty()) {
Respond(Error(kErrorInternal));
return;

Powered by Google App Engine
This is Rietveld 408576698