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

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: Addressed comments. 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 d9cd9b2e6ef076474a5063c82178a0d03fa09b1c..ce810c3600d981597796e6309aa3105010dd3245 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
@@ -23,6 +23,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";
@@ -82,9 +83,22 @@ 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::platform_keys::Sign(
params->token_id,
params->public_key,
+ hash_algorithm,
params->data,
base::Bind(&EnterprisePlatformKeysInternalSignFunction::OnSigned, this),
browser_context());

Powered by Google App Engine
This is Rietveld 408576698