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

Unified Diff: content/child/webcrypto/openssl/ec_key_openssl.h

Issue 698363002: webcrypto: Add ECDSA algorithm (chromium-side) (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@extract_more
Patch Set: rebase + add another test Created 6 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 side-by-side diff with in-line comments
Download patch
Index: content/child/webcrypto/openssl/ec_key_openssl.h
diff --git a/content/child/webcrypto/openssl/rsa_key_openssl.h b/content/child/webcrypto/openssl/ec_key_openssl.h
similarity index 66%
copy from content/child/webcrypto/openssl/rsa_key_openssl.h
copy to content/child/webcrypto/openssl/ec_key_openssl.h
index d7935052dc789feac9c6445bf1165fb4276e8233..31c0c65374d5488a7409fa43dd8049588402d3d8 100644
--- a/content/child/webcrypto/openssl/rsa_key_openssl.h
+++ b/content/child/webcrypto/openssl/ec_key_openssl.h
@@ -2,8 +2,8 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#ifndef CONTENT_CHILD_WEBCRYPTO_OPENSSL_RSA_KEY_OPENSSL_H_
-#define CONTENT_CHILD_WEBCRYPTO_OPENSSL_RSA_KEY_OPENSSL_H_
+#ifndef CONTENT_CHILD_WEBCRYPTO_OPENSSL_EC_KEY_OPENSSL_H_
+#define CONTENT_CHILD_WEBCRYPTO_OPENSSL_EC_KEY_OPENSSL_H_
#include "content/child/webcrypto/algorithm_implementation.h"
@@ -11,29 +11,21 @@ namespace content {
namespace webcrypto {
-// Base class for an RSA algorithm whose keys additionaly have a hash parameter
-// bound to them. Provides functionality for generating, importing, and
-// exporting keys.
-class RsaHashedAlgorithm : public AlgorithmImplementation {
+// Base class for an EC algorithm. Provides functionality for generating,
+// importing, and exporting keys.
+class EcAlgorithm : public AlgorithmImplementation {
public:
// |all_public_key_usages| and |all_private_key_usages| are the set of
// WebCrypto key usages that are valid for created keys (public and private
// respectively).
- //
- // For instance if public keys support encryption and wrapping, and private
- // keys support decryption and unwrapping callers should set:
- // all_public_key_usages = UsageEncrypt | UsageWrap
- // all_private_key_usages = UsageDecrypt | UsageUnwrap
- // This information is used when importing or generating keys, to enforce
- // that valid key usages are allowed.
- RsaHashedAlgorithm(blink::WebCryptoKeyUsageMask all_public_key_usages,
- blink::WebCryptoKeyUsageMask all_private_key_usages)
+ EcAlgorithm(blink::WebCryptoKeyUsageMask all_public_key_usages,
+ blink::WebCryptoKeyUsageMask all_private_key_usages)
: all_public_key_usages_(all_public_key_usages),
all_private_key_usages_(all_private_key_usages) {}
- // For instance "RSA-OAEP-256".
+ // For instance "ES256".
virtual const char* GetJwkAlgorithm(
- const blink::WebCryptoAlgorithmId hash) const = 0;
+ const blink::WebCryptoNamedCurve curve) const = 0;
Status GenerateKey(const blink::WebCryptoAlgorithm& algorithm,
bool extractable,
@@ -72,12 +64,12 @@ class RsaHashedAlgorithm : public AlgorithmImplementation {
std::vector<uint8_t>* buffer) const override;
private:
- blink::WebCryptoKeyUsageMask all_public_key_usages_;
- blink::WebCryptoKeyUsageMask all_private_key_usages_;
+ const blink::WebCryptoKeyUsageMask all_public_key_usages_;
+ const blink::WebCryptoKeyUsageMask all_private_key_usages_;
};
} // namespace webcrypto
} // namespace content
-#endif // CONTENT_CHILD_WEBCRYPTO_OPENSSL_RSA_KEY_OPENSSL_H_
+#endif // CONTENT_CHILD_WEBCRYPTO_OPENSSL_EC_KEY_OPENSSL_H_

Powered by Google App Engine
This is Rietveld 408576698