Index: content/child/webcrypto/openssl/rsa_key_openssl.cc |
diff --git a/content/child/webcrypto/openssl/rsa_key_openssl.cc b/content/child/webcrypto/openssl/rsa_key_openssl.cc |
index 09e277f261f71d910379228d3f4921c0faa2160f..ab63f506feb5bf5c5e12ff397b213d5d8a913325 100644 |
--- a/content/child/webcrypto/openssl/rsa_key_openssl.cc |
+++ b/content/child/webcrypto/openssl/rsa_key_openssl.cc |
@@ -234,17 +234,22 @@ Status RsaHashedAlgorithm::GenerateKey( |
Status RsaHashedAlgorithm::VerifyKeyUsagesBeforeImportKey( |
blink::WebCryptoKeyFormat format, |
blink::WebCryptoKeyUsageMask usages) const { |
+ bool checkEmptyUsage = true; |
switch (format) { |
case blink::WebCryptoKeyFormatSpki: |
- return CheckKeyCreationUsages(all_public_key_usages_, usages); |
+ return CheckKeyCreationUsages(all_public_key_usages_, usages, |
+ checkEmptyUsage); |
case blink::WebCryptoKeyFormatPkcs8: |
- return CheckKeyCreationUsages(all_private_key_usages_, usages); |
+ return CheckKeyCreationUsages(all_private_key_usages_, usages, |
+ checkEmptyUsage); |
case blink::WebCryptoKeyFormatJwk: |
// The JWK could represent either a public key or private key. The usages |
// must make sense for one of the two. The usages will be checked again by |
// ImportKeyJwk() once the key type has been determined. |
- if (CheckKeyCreationUsages(all_private_key_usages_, usages).IsSuccess() || |
- CheckKeyCreationUsages(all_public_key_usages_, usages).IsSuccess()) { |
+ if (CheckKeyCreationUsages(all_private_key_usages_, usages, |
+ checkEmptyUsage).IsSuccess() || |
+ CheckKeyCreationUsages(all_public_key_usages_, usages, |
+ checkEmptyUsage).IsSuccess()) { |
return Status::Success(); |
} |
return Status::ErrorCreateKeyBadUsages(); |