LibWeb: Throw TypeError if WebCrypto algorithm doesn't have "name" field
This commit is contained in:
parent
fe98cbcae1
commit
7b678d3e1f
Notes:
github-actions[bot]
2024-11-24 22:29:24 +00:00
Author: https://github.com/awesomekling Commit: https://github.com/LadybirdBrowser/ladybird/commit/7b678d3e1f2 Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/2555 Reviewed-by: https://github.com/alimpfard ✅ Reviewed-by: https://github.com/gmta ✅ Reviewed-by: https://github.com/stelar7
2 changed files with 42 additions and 38 deletions
|
@ -88,6 +88,10 @@ WebIDL::ExceptionOr<NormalizedAlgorithmAndParameter> normalize_an_algorithm(JS::
|
|||
// fetch the actual algorithm factory from the registeredAlgorithms map.
|
||||
auto initial_algorithm = TRY(algorithm.get<GC::Root<JS::Object>>()->get("name"));
|
||||
|
||||
if (initial_algorithm.is_undefined()) {
|
||||
return vm.throw_completion<JS::TypeError>(JS::ErrorType::NotAnObjectOfType, "Algorithm");
|
||||
}
|
||||
|
||||
// 4. Let algName be the value of the name attribute of initialAlg.
|
||||
auto algorithm_name = TRY(initial_algorithm.to_string(vm));
|
||||
|
||||
|
|
|
@ -6,8 +6,8 @@ Rerun
|
|||
|
||||
Found 476 tests
|
||||
|
||||
410 Pass
|
||||
66 Fail
|
||||
446 Pass
|
||||
30 Fail
|
||||
Details
|
||||
Result Test Name MessagePass Bad algorithm: generateKey(AES, false, [decrypt])
|
||||
Pass Bad algorithm: generateKey(AES, true, [decrypt])
|
||||
|
@ -333,42 +333,42 @@ Pass Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt, s
|
|||
Pass Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits])
|
||||
Pass Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits])
|
||||
Pass Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits])
|
||||
Fail Empty algorithm: generateKey({}, false, [decrypt])
|
||||
Fail Empty algorithm: generateKey({}, true, [decrypt])
|
||||
Fail Empty algorithm: generateKey({}, RED, [decrypt])
|
||||
Fail Empty algorithm: generateKey({}, 7, [decrypt])
|
||||
Fail Empty algorithm: generateKey({}, false, [sign, decrypt])
|
||||
Fail Empty algorithm: generateKey({}, true, [sign, decrypt])
|
||||
Fail Empty algorithm: generateKey({}, RED, [sign, decrypt])
|
||||
Fail Empty algorithm: generateKey({}, 7, [sign, decrypt])
|
||||
Fail Empty algorithm: generateKey({}, false, [deriveBits, sign, decrypt])
|
||||
Fail Empty algorithm: generateKey({}, true, [deriveBits, sign, decrypt])
|
||||
Fail Empty algorithm: generateKey({}, RED, [deriveBits, sign, decrypt])
|
||||
Fail Empty algorithm: generateKey({}, 7, [deriveBits, sign, decrypt])
|
||||
Fail Empty algorithm: generateKey({}, false, [deriveBits, decrypt])
|
||||
Fail Empty algorithm: generateKey({}, true, [deriveBits, decrypt])
|
||||
Fail Empty algorithm: generateKey({}, RED, [deriveBits, decrypt])
|
||||
Fail Empty algorithm: generateKey({}, 7, [deriveBits, decrypt])
|
||||
Fail Empty algorithm: generateKey({}, false, [sign])
|
||||
Fail Empty algorithm: generateKey({}, true, [sign])
|
||||
Fail Empty algorithm: generateKey({}, RED, [sign])
|
||||
Fail Empty algorithm: generateKey({}, 7, [sign])
|
||||
Fail Empty algorithm: generateKey({}, false, [deriveBits, sign])
|
||||
Fail Empty algorithm: generateKey({}, true, [deriveBits, sign])
|
||||
Fail Empty algorithm: generateKey({}, RED, [deriveBits, sign])
|
||||
Fail Empty algorithm: generateKey({}, 7, [deriveBits, sign])
|
||||
Fail Empty algorithm: generateKey({}, false, [deriveBits])
|
||||
Fail Empty algorithm: generateKey({}, true, [deriveBits])
|
||||
Fail Empty algorithm: generateKey({}, RED, [deriveBits])
|
||||
Fail Empty algorithm: generateKey({}, 7, [deriveBits])
|
||||
Fail Empty algorithm: generateKey({}, false, [])
|
||||
Fail Empty algorithm: generateKey({}, true, [])
|
||||
Fail Empty algorithm: generateKey({}, RED, [])
|
||||
Fail Empty algorithm: generateKey({}, 7, [])
|
||||
Fail Empty algorithm: generateKey({}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits])
|
||||
Fail Empty algorithm: generateKey({}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits])
|
||||
Fail Empty algorithm: generateKey({}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits])
|
||||
Fail Empty algorithm: generateKey({}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits])
|
||||
Pass Empty algorithm: generateKey({}, false, [decrypt])
|
||||
Pass Empty algorithm: generateKey({}, true, [decrypt])
|
||||
Pass Empty algorithm: generateKey({}, RED, [decrypt])
|
||||
Pass Empty algorithm: generateKey({}, 7, [decrypt])
|
||||
Pass Empty algorithm: generateKey({}, false, [sign, decrypt])
|
||||
Pass Empty algorithm: generateKey({}, true, [sign, decrypt])
|
||||
Pass Empty algorithm: generateKey({}, RED, [sign, decrypt])
|
||||
Pass Empty algorithm: generateKey({}, 7, [sign, decrypt])
|
||||
Pass Empty algorithm: generateKey({}, false, [deriveBits, sign, decrypt])
|
||||
Pass Empty algorithm: generateKey({}, true, [deriveBits, sign, decrypt])
|
||||
Pass Empty algorithm: generateKey({}, RED, [deriveBits, sign, decrypt])
|
||||
Pass Empty algorithm: generateKey({}, 7, [deriveBits, sign, decrypt])
|
||||
Pass Empty algorithm: generateKey({}, false, [deriveBits, decrypt])
|
||||
Pass Empty algorithm: generateKey({}, true, [deriveBits, decrypt])
|
||||
Pass Empty algorithm: generateKey({}, RED, [deriveBits, decrypt])
|
||||
Pass Empty algorithm: generateKey({}, 7, [deriveBits, decrypt])
|
||||
Pass Empty algorithm: generateKey({}, false, [sign])
|
||||
Pass Empty algorithm: generateKey({}, true, [sign])
|
||||
Pass Empty algorithm: generateKey({}, RED, [sign])
|
||||
Pass Empty algorithm: generateKey({}, 7, [sign])
|
||||
Pass Empty algorithm: generateKey({}, false, [deriveBits, sign])
|
||||
Pass Empty algorithm: generateKey({}, true, [deriveBits, sign])
|
||||
Pass Empty algorithm: generateKey({}, RED, [deriveBits, sign])
|
||||
Pass Empty algorithm: generateKey({}, 7, [deriveBits, sign])
|
||||
Pass Empty algorithm: generateKey({}, false, [deriveBits])
|
||||
Pass Empty algorithm: generateKey({}, true, [deriveBits])
|
||||
Pass Empty algorithm: generateKey({}, RED, [deriveBits])
|
||||
Pass Empty algorithm: generateKey({}, 7, [deriveBits])
|
||||
Pass Empty algorithm: generateKey({}, false, [])
|
||||
Pass Empty algorithm: generateKey({}, true, [])
|
||||
Pass Empty algorithm: generateKey({}, RED, [])
|
||||
Pass Empty algorithm: generateKey({}, 7, [])
|
||||
Pass Empty algorithm: generateKey({}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits])
|
||||
Pass Empty algorithm: generateKey({}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits])
|
||||
Pass Empty algorithm: generateKey({}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits])
|
||||
Pass Empty algorithm: generateKey({}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits])
|
||||
Pass Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [encrypt])
|
||||
Pass Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, encrypt])
|
||||
Pass Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, deriveKey, encrypt])
|
||||
|
|
Loading…
Add table
Reference in a new issue