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

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

Issue 331173002: enterprise.platformKeys: Respect the 'hash' argument of generateKey. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebased. Created 6 years, 6 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 7ee7fb077350060d3f9f9e51fdc9f6065db8875a..16a907f629ff25f9be52774bc7fd00c423a920ec 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
@@ -25,6 +25,7 @@ namespace api_epki = api::enterprise_platform_keys_internal;
// extension. Keep this in sync with the custom binding in Javascript.
const char kErrorInvalidToken[] = "The token is not valid.";
+const char kErrorAlgorithmNotSupported[] = "Algorithm not supported.";
const char kErrorInvalidX509Cert[] =
"Certificate is not a valid X.509 certificate.";
const char kTokenIdUser[] = "user";
@@ -89,6 +90,18 @@ EnterprisePlatformKeysInternalSignFunction::Run() {
if (!ValidateToken(params->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());
@@ -97,6 +110,7 @@ EnterprisePlatformKeysInternalSignFunction::Run() {
service->Sign(
params->token_id,
params->public_key,
+ hash_algorithm,
params->data,
extension_id(),
base::Bind(&EnterprisePlatformKeysInternalSignFunction::OnSigned, this));

Powered by Google App Engine
This is Rietveld 408576698