| Index: content/child/webcrypto/shared_crypto.cc
|
| diff --git a/content/child/webcrypto/shared_crypto.cc b/content/child/webcrypto/shared_crypto.cc
|
| index 580754ae47966343874aee1766ea68b8d2672d52..76740f4cef3ce9a4e7b529c14ef53e24cb101b98 100644
|
| --- a/content/child/webcrypto/shared_crypto.cc
|
| +++ b/content/child/webcrypto/shared_crypto.cc
|
| @@ -210,14 +210,11 @@ Status VerifyRsaSsaPkcs1v1_5(const blink::WebCryptoAlgorithm& algorithm,
|
| }
|
|
|
| Status ImportKeyRaw(const CryptoData& key_data,
|
| - const blink::WebCryptoAlgorithm& algorithm_or_null,
|
| + const blink::WebCryptoAlgorithm& algorithm,
|
| bool extractable,
|
| blink::WebCryptoKeyUsageMask usage_mask,
|
| blink::WebCryptoKey* key) {
|
| - if (algorithm_or_null.isNull())
|
| - return Status::ErrorMissingAlgorithmImportRawKey();
|
| -
|
| - switch (algorithm_or_null.id()) {
|
| + switch (algorithm.id()) {
|
| case blink::WebCryptoAlgorithmIdAesCtr:
|
| case blink::WebCryptoAlgorithmIdAesCbc:
|
| case blink::WebCryptoAlgorithmIdAesGcm:
|
| @@ -227,7 +224,7 @@ Status ImportKeyRaw(const CryptoData& key_data,
|
| // Fallthrough intentional!
|
| case blink::WebCryptoAlgorithmIdHmac:
|
| return platform::ImportKeyRaw(
|
| - algorithm_or_null, key_data, extractable, usage_mask, key);
|
| + algorithm, key_data, extractable, usage_mask, key);
|
| default:
|
| return Status::ErrorUnsupported();
|
| }
|
| @@ -387,23 +384,23 @@ Status GenerateKeyPair(const blink::WebCryptoAlgorithm& algorithm,
|
|
|
| Status ImportKey(blink::WebCryptoKeyFormat format,
|
| const CryptoData& key_data,
|
| - const blink::WebCryptoAlgorithm& algorithm_or_null,
|
| + const blink::WebCryptoAlgorithm& algorithm,
|
| bool extractable,
|
| blink::WebCryptoKeyUsageMask usage_mask,
|
| blink::WebCryptoKey* key) {
|
| switch (format) {
|
| case blink::WebCryptoKeyFormatRaw:
|
| return ImportKeyRaw(
|
| - key_data, algorithm_or_null, extractable, usage_mask, key);
|
| + key_data, algorithm, extractable, usage_mask, key);
|
| case blink::WebCryptoKeyFormatSpki:
|
| return platform::ImportKeySpki(
|
| - algorithm_or_null, key_data, extractable, usage_mask, key);
|
| + algorithm, key_data, extractable, usage_mask, key);
|
| case blink::WebCryptoKeyFormatPkcs8:
|
| return platform::ImportKeyPkcs8(
|
| - algorithm_or_null, key_data, extractable, usage_mask, key);
|
| + algorithm, key_data, extractable, usage_mask, key);
|
| case blink::WebCryptoKeyFormatJwk:
|
| return ImportKeyJwk(
|
| - key_data, algorithm_or_null, extractable, usage_mask, key);
|
| + key_data, algorithm, extractable, usage_mask, key);
|
| default:
|
| return Status::ErrorUnsupported();
|
| }
|
| @@ -527,7 +524,7 @@ Status UnwrapKey(blink::WebCryptoKeyFormat format,
|
| const CryptoData& wrapped_key_data,
|
| const blink::WebCryptoKey& wrapping_key,
|
| const blink::WebCryptoAlgorithm& wrapping_algorithm,
|
| - const blink::WebCryptoAlgorithm& algorithm_or_null,
|
| + const blink::WebCryptoAlgorithm& algorithm,
|
| bool extractable,
|
| blink::WebCryptoKeyUsageMask usage_mask,
|
| blink::WebCryptoKey* key) {
|
| @@ -540,10 +537,6 @@ Status UnwrapKey(blink::WebCryptoKeyFormat format,
|
| if (format != blink::WebCryptoKeyFormatRaw)
|
| return Status::ErrorUnsupported();
|
|
|
| - // Must provide an algorithm when unwrapping a raw key
|
| - if (format == blink::WebCryptoKeyFormatRaw && algorithm_or_null.isNull())
|
| - return Status::ErrorMissingAlgorithmUnwrapRawKey();
|
| -
|
| platform::SymKey* platform_wrapping_key;
|
| Status status = ToPlatformSymKey(wrapping_key, &platform_wrapping_key);
|
| if (status.IsError())
|
| @@ -560,7 +553,7 @@ Status UnwrapKey(blink::WebCryptoKeyFormat format,
|
| return Status::ErrorInvalidAesKwDataLength();
|
| return platform::UnwrapSymKeyAesKw(wrapped_key_data,
|
| platform_wrapping_key,
|
| - algorithm_or_null,
|
| + algorithm,
|
| extractable,
|
| usage_mask,
|
| key);
|
|
|