Skip to content

Commit

Permalink
LibWeb: Set algorithm length for HMAC key generation
Browse files Browse the repository at this point in the history
This assignment was missing from the spec, but has been fixed since
w3c/webcrypto#394.
  • Loading branch information
devgianlu committed Dec 31, 2024
1 parent 664dc05 commit 5c201e9
Showing 1 changed file with 8 additions and 5 deletions.
13 changes: 8 additions & 5 deletions Libraries/LibWeb/Crypto/CryptoAlgorithms.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -6205,19 +6205,22 @@ WebIDL::ExceptionOr<Variant<GC::Ref<CryptoKey>, GC::Ref<CryptoKeyPair>>> HMAC::g
// 10. Set the hash attribute of algorithm to hash.
algorithm->set_hash(hash);

// 11. Set the [[type]] internal slot of key to "secret".
// 11. Set the length attribute of algorithm to length.
algorithm->set_length(length);

// 12. Set the [[type]] internal slot of key to "secret".
key->set_type(Bindings::KeyType::Secret);

// 12. Set the [[algorithm]] internal slot of key to algorithm.
// 13. Set the [[algorithm]] internal slot of key to algorithm.
key->set_algorithm(algorithm);

// 13. Set the [[extractable]] internal slot of key to be extractable.
// 14. Set the [[extractable]] internal slot of key to be extractable.
key->set_extractable(extractable);

// 14. Set the [[usages]] internal slot of key to be usages.
// 15. Set the [[usages]] internal slot of key to be usages.
key->set_usages(usages);

// 15. Return key.
// 16. Return key.
return Variant<GC::Ref<CryptoKey>, GC::Ref<CryptoKeyPair>> { key };
}

Expand Down

0 comments on commit 5c201e9

Please sign in to comment.