Index: content/child/webcrypto/webcrypto_util.cc |
diff --git a/content/child/webcrypto/webcrypto_util.cc b/content/child/webcrypto/webcrypto_util.cc |
index 6f0233eea99e7a5b19920055bf24ba7fc02cf87f..5df16330b7cec68a5b53dc2a7f6f72f277e14145 100644 |
--- a/content/child/webcrypto/webcrypto_util.cc |
+++ b/content/child/webcrypto/webcrypto_util.cc |
@@ -381,6 +381,26 @@ Status GetHmacKeyLength(const blink::WebCryptoAlgorithm& key_length_algorithm, |
return GetShaBlockSizeBits(params->hash(), length_bits); |
} |
+Status GetUsagesForGenerateAsymmetricKey( |
+ blink::WebCryptoKeyUsageMask combined_usages, |
+ blink::WebCryptoKeyUsageMask all_public_usages, |
+ blink::WebCryptoKeyUsageMask all_private_usages, |
+ blink::WebCryptoKeyUsageMask* public_usages, |
+ blink::WebCryptoKeyUsageMask* private_usages) { |
+ Status status = CheckKeyCreationUsages(all_public_usages | all_private_usages, |
+ combined_usages); |
+ if (status.IsError()) |
+ return status; |
+ |
+ *public_usages = combined_usages & all_public_usages; |
+ *private_usages = combined_usages & all_private_usages; |
+ |
+ if (*private_usages == 0) |
+ return Status::ErrorCreateKeyEmptyUsages(); |
+ |
+ return Status::Success(); |
+} |
+ |
} // namespace webcrypto |
} // namespace content |