Tete17
7ac6aecef0
LibWeb: Implement decapsulation for ML-KEM algorithms
2026-01-06 01:06:06 +01:00
Tete17
140bbe50ab
LibWeb: Extend decapsulate(Key|Bits) methods to pass the key
...
This is mandated by the spec but since no algorithm supported this
method, yet we didn't notice it was missing.
2026-01-06 01:06:06 +01:00
Tete17
56804e7930
LibWeb: Support the exporting of ml-kem keys in spki format
2026-01-06 01:06:06 +01:00
Tete17
94410298f3
LibWeb: Implement Derive Bits for Argon2 algorithm
2026-01-04 15:56:54 +01:00
Tete17
7b3a97a928
LibWeb: Implement Argon2Params
...
This is the needed context for the Derive Bits operation of the Argon2
algorithm.
2026-01-04 15:56:54 +01:00
Tete17
2cc71e6437
LibWeb: Support the importing for Argon2 keys
2026-01-04 15:56:54 +01:00
Tete17
ebd0874fb5
LibWeb: Implement Get Key Length for Argon2 algorithm
2026-01-04 15:56:54 +01:00
Tete17
a414819dd6
LibWeb: Support the importing of ml-kem keys in spki format
2025-12-30 14:16:35 +01:00
Tete17
6350b063ab
LibWeb: Implement encapsulation for ML-KEM algorithms
2025-12-30 14:16:35 +01:00
Tete17
013cf34d1b
LibWeb: Implement key generation for ML-KEM algorithms
2025-12-30 14:16:35 +01:00
Tete17
ec67f0ae8d
LibWeb: Change return type of encapsulate for AlgorithmMethods
...
The standard ask to turn EncapsulatedBits into an ECMAScript Object
which means it must initially live in the host stack.
2025-12-30 14:16:35 +01:00
Tete17
c9b8b4557d
LibWeb: Implement decapsulateKey for SubtleCrypto
2025-12-28 18:56:50 +01:00
Tete17
f13c0fb317
LibWeb: Support the exporting of ml-dsa keys in spki format
2025-12-10 21:26:06 +01:00
Tete17
7a9ed4ba71
LibWeb: Support the importing of ml-dsa keys in spki format
2025-12-10 21:26:06 +01:00
Tete17
e596572085
LibWeb: Implement verify for ML-DSA algorithm
2025-12-10 21:26:06 +01:00
Tete17
ef0205ec86
LibWeb: Implement message signing for ML-DSA algorithm
2025-12-10 21:26:06 +01:00
Tete17
a9ade1c238
LibWeb: Implement key generation for ML-DSA algorithms
2025-12-10 21:26:06 +01:00
Tete17
b36a702ad1
LibWeb: Implement encapsulateKey method for SubtleCrypto
...
None of the current algorithms supports the method but the future
post quantum algorithms will do so.
2025-11-27 21:50:06 +01:00
Tete17
42f55c7c97
LibWeb: Implement Encapsulate(Key|Bits) dictionaries
...
These are needed structure for the encapsulate(Key|Bits) operations.
2025-11-27 21:50:06 +01:00
Jelle Raaijmakers
871f121c75
Everywhere: Validate // NOTE: ... and // NB: ... comments
2025-11-18 09:07:37 -05:00
Timothy Flynn
70db474cf0
LibJS+LibWeb: Port interned bytecode strings to UTF-16
...
This was almost a no-op, except we intern JS exception messages. So the
bulk of this patch is porting exception messages to UTF-16.
2025-08-14 10:27:08 +02:00
Timothy Flynn
0efa98a57a
LibJS+LibWeb+WebContent: Port JS::PropertyKey to UTF-16
...
This has quite a lot of fall out. But the majority of it is just type or
UDL substitution, where the changes just fall through to other function
calls.
By changing property key storage to UTF-16, the main affected areas are:
* NativeFunction names must now be UTF-16
* Bytecode identifiers must now be UTF-16
* Module/binding names must now be UTF-16
2025-08-05 07:07:15 -04:00
Andreas Kling
53da8893ac
LibJS: Replace PropertyKey(char[]) with PropertyKey(FlyString)
...
...and deal with the fallout.
2025-03-24 22:27:17 +00:00
devgianlu
999f456ba4
LibWeb: Support RSASSA-PKCS1-v1_5 in WebCryptoAPI
2025-01-17 12:43:03 +01:00
devgianlu
e05ee9d297
LibWeb: Support RSA-PSS in WebCryptoAPI
2025-01-17 12:43:03 +01:00
devgianlu
b9ba1b3f72
LibWeb: Add Ed448 support in WebCryptoAPI
...
Add full support for Ed448 and import relevant tests.
2025-01-11 11:13:06 +01:00
devgianlu
94374f0d19
LibWeb: Implement AES-KW in WebCryptoAPI
...
Add support for AES-KW for key wrapping/unwrapping. Very similar
implementation to other AES modes.
Added generic tests for symmetric import and specific AES-KW ones.
Adds ~400 test passes on WPT. Now we do better than Firefox in
`WebCryptoAPI/wrapKey_unwrapKey`!
2024-12-17 11:00:14 +01:00
devgianlu
584cbcf3ef
LibWeb: Implement wrapKey and unwrapKey methods
...
This implements the last WebCryptoAPI methods `wrapKey` and `unwrapKey`.
Most of the functionality is already there because they rely on
`encrypt` and `decrypt`. The only test failures are for `AES-GCM` which
is not implemented yet.
2024-12-16 11:35:00 +01:00
devgianlu
f0fbd50c66
LibWeb: Implement ECDSA.importKey and ECDSA.exportKey
...
Very similar implementation to ECDH. Fixes ~700 tests!
2024-12-03 13:20:51 +01:00
devgianlu
46e724729c
LibWeb: Match algorithm names case-insensitive
...
I dug through the code and the WebCryptoAPI spec to figure out the
reason for `... mixed case parameters` WPT tests and figured out that
our implementation was slightly wrong.
By being closer to the spec we can now pass those tests and also remove
a bunch of duplicated code.
Context: https://github.com/LadybirdBrowser/ladybird/pull/2598#discussion_r1859263798
2024-11-28 00:21:49 +01:00
devgianlu
6ebc812035
LibWeb: Rename EcdhKeyDerivePrams to EcdhKeyDeriveParams
2024-11-28 00:21:49 +01:00
devgianlu
6fa53a4382
LibWeb: Implement ECDH.exportKey
2024-11-27 10:59:48 +01:00
devgianlu
228276a383
LibWeb: Implement ECDH.importKey
2024-11-27 10:59:48 +01:00
devgianlu
e6056ab959
LibWeb: Implement ECDH.deriveBits
2024-11-27 10:59:48 +01:00
devgianlu
fd336ed619
LibWeb: Define EcKeyImportParams
2024-11-27 10:59:48 +01:00
Andreas Kling
d625e12082
LibWeb: Implement the deriveBits algorithm for X448
2024-11-25 17:16:51 +01:00
Andreas Kling
96ddccd961
LibWeb: Implement the importKey algorithm for X448
2024-11-25 17:16:51 +01:00
Andreas Kling
4a734226aa
LibWeb: Implement the exportKey algorithm for X448
2024-11-25 17:16:51 +01:00
Andreas Kling
5a8b0a2610
LibWeb: Implement the generateKey algorithm for X448
2024-11-25 17:16:51 +01:00
Andreas Kling
ed7b1caba2
LibWeb: Implement the exportKey algorithm for Ed25519
2024-11-24 23:28:23 +01:00
Andreas Kling
4d25369f29
LibWeb: Implement the importKey algorithm for Ed25519
2024-11-24 23:28:23 +01:00
devgianlu
009f328308
LibWeb: Implement ECDH.generateKey
2024-11-21 11:45:22 +01:00
Shannon Booth
f87041bf3a
LibGC+Everywhere: Factor out a LibGC from LibJS
...
Resulting in a massive rename across almost everywhere! Alongside the
namespace change, we now have the following names:
* JS::NonnullGCPtr -> GC::Ref
* JS::GCPtr -> GC::Ptr
* JS::HeapFunction -> GC::Function
* JS::CellImpl -> GC::Cell
* JS::Handle -> GC::Root
2024-11-15 14:49:20 +01:00
Jelle Raaijmakers
329cd946ac
LibWeb: Implement Web Crypto HMAC algorithm
2024-11-14 11:52:18 +01:00
Timothy Flynn
93712b24bf
Everywhere: Hoist the Libraries folder to the top-level
2024-11-10 12:50:45 +01:00