| Index: content/child/webcrypto/webcrypto_util.cc
|
| diff --git a/content/child/webcrypto/webcrypto_util.cc b/content/child/webcrypto/webcrypto_util.cc
|
| index 6dad83fcae7dae6c9cb0bd1ecd7b50139d56c670..d4995a93b0d37da3656fc501642491d19b508e55 100644
|
| --- a/content/child/webcrypto/webcrypto_util.cc
|
| +++ b/content/child/webcrypto/webcrypto_util.cc
|
| @@ -262,6 +262,29 @@ Status GetRsaKeyGenParameters(
|
| return Status::Success();
|
| }
|
|
|
| +Status GetUsagesForGenerateAsymmetricKey(
|
| + blink::WebCryptoKeyUsageMask combined_usages,
|
| + blink::WebCryptoKeyUsageMask all_public_usages,
|
| + blink::WebCryptoKeyUsageMask all_private_usages,
|
| + blink::WebCryptoKeyUsageMask* public_usages,
|
| + blink::WebCryptoKeyUsageMask* private_usages) {
|
| + *public_usages = combined_usages & all_public_usages;
|
| + *private_usages = combined_usages & all_private_usages;
|
| +
|
| + Status status = CheckKeyCreationUsages(all_public_usages, *public_usages);
|
| + if (status.IsError())
|
| + return status;
|
| +
|
| + status = CheckKeyCreationUsages(all_private_usages, *private_usages);
|
| + if (status.IsError())
|
| + return status;
|
| +
|
| + if (private_usages == 0)
|
| + return Status::ErrorCreateKeyEmptyUsages();
|
| +
|
| + return Status::Success();
|
| +}
|
| +
|
| } // namespace webcrypto
|
|
|
| } // namespace content
|
|
|