mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-07-06 17:11:51 +00:00
LibWeb: Correctly set the key_usages on HMAC export
This commit is contained in:
parent
1c77135948
commit
19ee8ddec2
Notes:
github-actions[bot]
2024-11-14 18:49:14 +00:00
Author: https://github.com/stelar7
Commit: 19ee8ddec2
Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/2339
Reviewed-by: https://github.com/gmta
3 changed files with 27 additions and 11 deletions
|
@ -3589,8 +3589,6 @@ WebIDL::ExceptionOr<JS::NonnullGCPtr<CryptoKey>> HMAC::import_key(Web::Crypto::A
|
|||
// https://w3c.github.io/webcrypto/#hmac-operations
|
||||
WebIDL::ExceptionOr<JS::NonnullGCPtr<JS::Object>> HMAC::export_key(Bindings::KeyFormat format, JS::NonnullGCPtr<CryptoKey> key)
|
||||
{
|
||||
auto& vm = m_realm->vm();
|
||||
|
||||
// 1. If the underlying cryptographic key material represented by the [[handle]] internal slot
|
||||
// of key cannot be accessed, then throw an OperationError.
|
||||
// NOTE: In our impl this is always accessible
|
||||
|
@ -3657,15 +3655,10 @@ WebIDL::ExceptionOr<JS::NonnullGCPtr<JS::Object>> HMAC::export_key(Bindings::Key
|
|||
}
|
||||
|
||||
// Set the key_ops attribute of jwk to equal the usages attribute of key.
|
||||
auto key_usages = verify_cast<JS::Array>(key->usages());
|
||||
auto key_usages_length = MUST(MUST(key_usages->get(vm.names.length)).to_length(vm));
|
||||
for (auto i = 0u; i < key_usages_length; ++i) {
|
||||
auto usage = key_usages->get(i);
|
||||
if (!usage.has_value())
|
||||
break;
|
||||
|
||||
auto usage_string = TRY(usage.value().to_string(vm));
|
||||
jwk.key_ops->append(usage_string);
|
||||
jwk.key_ops = Vector<String> {};
|
||||
jwk.key_ops->ensure_capacity(key->internal_usages().size());
|
||||
for (auto const& usage : key->internal_usages()) {
|
||||
jwk.key_ops->append(Bindings::idl_enum_to_string(usage));
|
||||
}
|
||||
|
||||
// Set the ext attribute of jwk to equal the [[extractable]] internal slot of key.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue