LibWeb: Always return a KeyAlgorithm from RsaHashedKeyAlgorithm

The spec never mentions the possibility for the `hash` member of
`RsaHashedKeyAlgorithm` to be a string, it should be a `KeyAlgorithm`
object containing a `name` string member.

Spec: https://w3c.github.io/webcrypto/#dfn-RsaHashedKeyAlgorithm
This commit is contained in:
devgianlu 2024-12-26 18:08:37 +01:00 committed by Jelle Raaijmakers
parent 999f456ba4
commit 991cb8942d
Notes: github-actions[bot] 2025-01-17 11:44:02 +00:00
4 changed files with 529 additions and 528 deletions

View file

@ -179,7 +179,10 @@ JS_DEFINE_NATIVE_FUNCTION(RsaHashedKeyAlgorithm::hash_getter)
auto hash = TRY(Bindings::throw_dom_exception_if_needed(vm, [&] { return impl->hash(); }));
return hash.visit(
[&](String const& hash_string) -> JS::Value {
return JS::PrimitiveString::create(vm, hash_string);
auto& realm = *vm.current_realm();
auto object = KeyAlgorithm::create(realm);
object->set_name(hash_string);
return object;
},
[&](GC::Root<JS::Object> const& hash) -> JS::Value {
return hash;

View file

@ -2,13 +2,12 @@ Harness status: OK
Found 357 tests
315 Pass
42 Fail
357 Pass
Pass setup
Fail Can wrap and unwrap RSASSA-PKCS1-v1_5 public key keys using spki and RSA-OAEP
Fail Can wrap and unwrap RSASSA-PKCS1-v1_5 public key keys using jwk and RSA-OAEP
Fail Can wrap and unwrap RSA-PSS public key keys using spki and RSA-OAEP
Fail Can wrap and unwrap RSA-PSS public key keys using jwk and RSA-OAEP
Pass Can wrap and unwrap RSASSA-PKCS1-v1_5 public key keys using spki and RSA-OAEP
Pass Can wrap and unwrap RSASSA-PKCS1-v1_5 public key keys using jwk and RSA-OAEP
Pass Can wrap and unwrap RSA-PSS public key keys using spki and RSA-OAEP
Pass Can wrap and unwrap RSA-PSS public key keys using jwk and RSA-OAEP
Pass Can wrap and unwrap RSA-OAEP public key keys using spki and RSA-OAEP
Pass Can wrap and unwrap RSA-OAEP public key keys using jwk and RSA-OAEP
Pass Can wrap and unwrap ECDSA public key keys using spki and RSA-OAEP
@ -78,19 +77,19 @@ Pass Can wrap and unwrap HMAC keys as non-extractable using raw and RSA-OAEP
Pass Can wrap and unwrap HMAC keys using jwk and RSA-OAEP
Pass Can wrap and unwrap HMAC keys as non-extractable using jwk and RSA-OAEP
Pass Can unwrap HMAC non-extractable keys using jwk and RSA-OAEP
Fail Can wrap and unwrap RSASSA-PKCS1-v1_5 public key keys using spki and AES-CTR
Fail Can wrap and unwrap RSASSA-PKCS1-v1_5 public key keys using jwk and AES-CTR
Fail Can wrap and unwrap RSASSA-PKCS1-v1_5 private key keys using pkcs8 and AES-CTR
Fail Can wrap and unwrap RSASSA-PKCS1-v1_5 private key keys as non-extractable using pkcs8 and AES-CTR
Fail Can wrap and unwrap RSASSA-PKCS1-v1_5 private key keys using jwk and AES-CTR
Fail Can wrap and unwrap RSASSA-PKCS1-v1_5 private key keys as non-extractable using jwk and AES-CTR
Pass Can wrap and unwrap RSASSA-PKCS1-v1_5 public key keys using spki and AES-CTR
Pass Can wrap and unwrap RSASSA-PKCS1-v1_5 public key keys using jwk and AES-CTR
Pass Can wrap and unwrap RSASSA-PKCS1-v1_5 private key keys using pkcs8 and AES-CTR
Pass Can wrap and unwrap RSASSA-PKCS1-v1_5 private key keys as non-extractable using pkcs8 and AES-CTR
Pass Can wrap and unwrap RSASSA-PKCS1-v1_5 private key keys using jwk and AES-CTR
Pass Can wrap and unwrap RSASSA-PKCS1-v1_5 private key keys as non-extractable using jwk and AES-CTR
Pass Can unwrap RSASSA-PKCS1-v1_5 private key non-extractable keys using jwk and AES-CTR
Fail Can wrap and unwrap RSA-PSS public key keys using spki and AES-CTR
Fail Can wrap and unwrap RSA-PSS public key keys using jwk and AES-CTR
Fail Can wrap and unwrap RSA-PSS private key keys using pkcs8 and AES-CTR
Fail Can wrap and unwrap RSA-PSS private key keys as non-extractable using pkcs8 and AES-CTR
Fail Can wrap and unwrap RSA-PSS private key keys using jwk and AES-CTR
Fail Can wrap and unwrap RSA-PSS private key keys as non-extractable using jwk and AES-CTR
Pass Can wrap and unwrap RSA-PSS public key keys using spki and AES-CTR
Pass Can wrap and unwrap RSA-PSS public key keys using jwk and AES-CTR
Pass Can wrap and unwrap RSA-PSS private key keys using pkcs8 and AES-CTR
Pass Can wrap and unwrap RSA-PSS private key keys as non-extractable using pkcs8 and AES-CTR
Pass Can wrap and unwrap RSA-PSS private key keys using jwk and AES-CTR
Pass Can wrap and unwrap RSA-PSS private key keys as non-extractable using jwk and AES-CTR
Pass Can unwrap RSA-PSS private key non-extractable keys using jwk and AES-CTR
Pass Can wrap and unwrap RSA-OAEP public key keys using spki and AES-CTR
Pass Can wrap and unwrap RSA-OAEP public key keys using jwk and AES-CTR
@ -166,19 +165,19 @@ Pass Can wrap and unwrap HMAC keys as non-extractable using raw and AES-CTR
Pass Can wrap and unwrap HMAC keys using jwk and AES-CTR
Pass Can wrap and unwrap HMAC keys as non-extractable using jwk and AES-CTR
Pass Can unwrap HMAC non-extractable keys using jwk and AES-CTR
Fail Can wrap and unwrap RSASSA-PKCS1-v1_5 public key keys using spki and AES-CBC
Fail Can wrap and unwrap RSASSA-PKCS1-v1_5 public key keys using jwk and AES-CBC
Fail Can wrap and unwrap RSASSA-PKCS1-v1_5 private key keys using pkcs8 and AES-CBC
Fail Can wrap and unwrap RSASSA-PKCS1-v1_5 private key keys as non-extractable using pkcs8 and AES-CBC
Fail Can wrap and unwrap RSASSA-PKCS1-v1_5 private key keys using jwk and AES-CBC
Fail Can wrap and unwrap RSASSA-PKCS1-v1_5 private key keys as non-extractable using jwk and AES-CBC
Pass Can wrap and unwrap RSASSA-PKCS1-v1_5 public key keys using spki and AES-CBC
Pass Can wrap and unwrap RSASSA-PKCS1-v1_5 public key keys using jwk and AES-CBC
Pass Can wrap and unwrap RSASSA-PKCS1-v1_5 private key keys using pkcs8 and AES-CBC
Pass Can wrap and unwrap RSASSA-PKCS1-v1_5 private key keys as non-extractable using pkcs8 and AES-CBC
Pass Can wrap and unwrap RSASSA-PKCS1-v1_5 private key keys using jwk and AES-CBC
Pass Can wrap and unwrap RSASSA-PKCS1-v1_5 private key keys as non-extractable using jwk and AES-CBC
Pass Can unwrap RSASSA-PKCS1-v1_5 private key non-extractable keys using jwk and AES-CBC
Fail Can wrap and unwrap RSA-PSS public key keys using spki and AES-CBC
Fail Can wrap and unwrap RSA-PSS public key keys using jwk and AES-CBC
Fail Can wrap and unwrap RSA-PSS private key keys using pkcs8 and AES-CBC
Fail Can wrap and unwrap RSA-PSS private key keys as non-extractable using pkcs8 and AES-CBC
Fail Can wrap and unwrap RSA-PSS private key keys using jwk and AES-CBC
Fail Can wrap and unwrap RSA-PSS private key keys as non-extractable using jwk and AES-CBC
Pass Can wrap and unwrap RSA-PSS public key keys using spki and AES-CBC
Pass Can wrap and unwrap RSA-PSS public key keys using jwk and AES-CBC
Pass Can wrap and unwrap RSA-PSS private key keys using pkcs8 and AES-CBC
Pass Can wrap and unwrap RSA-PSS private key keys as non-extractable using pkcs8 and AES-CBC
Pass Can wrap and unwrap RSA-PSS private key keys using jwk and AES-CBC
Pass Can wrap and unwrap RSA-PSS private key keys as non-extractable using jwk and AES-CBC
Pass Can unwrap RSA-PSS private key non-extractable keys using jwk and AES-CBC
Pass Can wrap and unwrap RSA-OAEP public key keys using spki and AES-CBC
Pass Can wrap and unwrap RSA-OAEP public key keys using jwk and AES-CBC
@ -254,19 +253,19 @@ Pass Can wrap and unwrap HMAC keys as non-extractable using raw and AES-CBC
Pass Can wrap and unwrap HMAC keys using jwk and AES-CBC
Pass Can wrap and unwrap HMAC keys as non-extractable using jwk and AES-CBC
Pass Can unwrap HMAC non-extractable keys using jwk and AES-CBC
Fail Can wrap and unwrap RSASSA-PKCS1-v1_5 public key keys using spki and AES-GCM
Fail Can wrap and unwrap RSASSA-PKCS1-v1_5 public key keys using jwk and AES-GCM
Fail Can wrap and unwrap RSASSA-PKCS1-v1_5 private key keys using pkcs8 and AES-GCM
Fail Can wrap and unwrap RSASSA-PKCS1-v1_5 private key keys as non-extractable using pkcs8 and AES-GCM
Fail Can wrap and unwrap RSASSA-PKCS1-v1_5 private key keys using jwk and AES-GCM
Fail Can wrap and unwrap RSASSA-PKCS1-v1_5 private key keys as non-extractable using jwk and AES-GCM
Pass Can wrap and unwrap RSASSA-PKCS1-v1_5 public key keys using spki and AES-GCM
Pass Can wrap and unwrap RSASSA-PKCS1-v1_5 public key keys using jwk and AES-GCM
Pass Can wrap and unwrap RSASSA-PKCS1-v1_5 private key keys using pkcs8 and AES-GCM
Pass Can wrap and unwrap RSASSA-PKCS1-v1_5 private key keys as non-extractable using pkcs8 and AES-GCM
Pass Can wrap and unwrap RSASSA-PKCS1-v1_5 private key keys using jwk and AES-GCM
Pass Can wrap and unwrap RSASSA-PKCS1-v1_5 private key keys as non-extractable using jwk and AES-GCM
Pass Can unwrap RSASSA-PKCS1-v1_5 private key non-extractable keys using jwk and AES-GCM
Fail Can wrap and unwrap RSA-PSS public key keys using spki and AES-GCM
Fail Can wrap and unwrap RSA-PSS public key keys using jwk and AES-GCM
Fail Can wrap and unwrap RSA-PSS private key keys using pkcs8 and AES-GCM
Fail Can wrap and unwrap RSA-PSS private key keys as non-extractable using pkcs8 and AES-GCM
Fail Can wrap and unwrap RSA-PSS private key keys using jwk and AES-GCM
Fail Can wrap and unwrap RSA-PSS private key keys as non-extractable using jwk and AES-GCM
Pass Can wrap and unwrap RSA-PSS public key keys using spki and AES-GCM
Pass Can wrap and unwrap RSA-PSS public key keys using jwk and AES-GCM
Pass Can wrap and unwrap RSA-PSS private key keys using pkcs8 and AES-GCM
Pass Can wrap and unwrap RSA-PSS private key keys as non-extractable using pkcs8 and AES-GCM
Pass Can wrap and unwrap RSA-PSS private key keys using jwk and AES-GCM
Pass Can wrap and unwrap RSA-PSS private key keys as non-extractable using jwk and AES-GCM
Pass Can unwrap RSA-PSS private key non-extractable keys using jwk and AES-GCM
Pass Can wrap and unwrap RSA-OAEP public key keys using spki and AES-GCM
Pass Can wrap and unwrap RSA-OAEP public key keys using jwk and AES-GCM
@ -342,8 +341,8 @@ Pass Can wrap and unwrap HMAC keys as non-extractable using raw and AES-GCM
Pass Can wrap and unwrap HMAC keys using jwk and AES-GCM
Pass Can wrap and unwrap HMAC keys as non-extractable using jwk and AES-GCM
Pass Can unwrap HMAC non-extractable keys using jwk and AES-GCM
Fail Can wrap and unwrap RSASSA-PKCS1-v1_5 public key keys using jwk and AES-KW
Fail Can wrap and unwrap RSA-PSS public key keys using jwk and AES-KW
Pass Can wrap and unwrap RSASSA-PKCS1-v1_5 public key keys using jwk and AES-KW
Pass Can wrap and unwrap RSA-PSS public key keys using jwk and AES-KW
Pass Can wrap and unwrap RSA-OAEP public key keys using jwk and AES-KW
Pass Can wrap and unwrap Ed25519 private key keys using pkcs8 and AES-KW
Pass Can wrap and unwrap Ed25519 private key keys as non-extractable using pkcs8 and AES-KW

View file

@ -16,7 +16,7 @@
);
println(key.extractable);
println(key.algorithm.name);
println(key.algorithm.hash);
println(key.algorithm.hash.name);
println(key.algorithm.publicExponent);
done();
});