rmg-x
0db171c36e
LibWeb/Crypto: Fix sizes being passed into generate_aes_key()
...
Previously, callers were passing the size in bytes, but the method
expected bits. This caused a crash in LibCrypto when verifying the key
size later on.
Also make the naming of local variables and parameters a little more
clear between the different AES algorithms :^)
2024-11-03 21:55:43 +01:00
Shannon Booth
cc91473f4d
LibWeb: Make TemporaryExecutionContext take a Realm&
2024-11-01 18:55:23 -06:00
stelar7
559fd1c0c2
LibWeb: Add FIXME for missing SubtleCrypto algorithms
2024-11-01 13:13:30 -04:00
stelar7
171af8de33
LibWeb: Implement AES-GCM.generateKey
2024-10-31 23:33:56 +01:00
stelar7
196d99352a
LibWeb: Stub out AES-GCM.decrypt
2024-10-31 23:33:56 +01:00
stelar7
2672acf9c4
LibWeb: Stub out AES-GCM.encrypt
2024-10-31 23:33:56 +01:00
stelar7
3dd80d2a6e
LibWeb: Implement AES-GCM.exportKey
2024-10-31 23:33:56 +01:00
stelar7
e53b3f5fb1
LibWeb: Implement AES-GCM.importKey
2024-10-31 23:33:56 +01:00
stelar7
80d37a6def
LibWeb: Implement AES-GCM.getKeyLength
2024-10-31 23:33:56 +01:00
stelar7
f9b511a7d6
LibWeb: Implement X25519.exportKey
2024-10-31 09:52:24 +01:00
stelar7
b281fa2b24
LibWeb: Implement X25519.importKey
2024-10-31 09:52:24 +01:00
stelar7
944f00c489
LibWeb: Implement X25519.generateKey
2024-10-31 09:52:24 +01:00
stelar7
8c5e5adc8a
LibWeb: Implement X25519.deriveBits
2024-10-31 09:52:24 +01:00
stelar7
af3383df09
LibWeb: Implement AES-CTR.decrypt
2024-10-31 08:15:00 +01:00
stelar7
74403d7f1e
LibWeb: Implement AES-CTR.encrypt
2024-10-31 08:15:00 +01:00
stelar7
55ef1c758a
LibWeb: Implement AES-CTR.generateKey
2024-10-31 08:15:00 +01:00
stelar7
4b2120d919
LibWeb: Implement AES-CTR.exportKey
2024-10-31 08:15:00 +01:00
stelar7
030cbef532
LibWeb: Implement AES-CTR.getKeyLength
2024-10-31 08:15:00 +01:00
stelar7
0864436383
LibWeb: Implement AES-CTR.importKey
2024-10-31 08:15:00 +01:00
Shannon Booth
29cea5bd24
LibWeb: Make EventLoopPlugin::deferred_invoke take a HeapFunction
2024-10-30 20:55:45 +01:00
Ben Wiederhake
3553861046
LibWeb: Omit padding in WebCrypto AES-CBC exportKey
2024-10-28 21:15:59 +01:00
Ben Wiederhake
4a6ce210b0
LibWeb: Refuse to fill float array with random values
...
This passes an additional test in WPT:
WebCryptoAPI/getRandomValues.any
2024-10-28 10:42:27 +01:00
stelar7
37f2818e90
LibWeb: Fix modulus length being wrong for RSA-OAEP key import
2024-10-27 11:26:12 +01:00
stelar7
23fc04d264
LibWeb: Implement RSAOAEP.decrypt()
2024-10-27 11:26:12 +01:00
stelar7
3b423f1852
LibWeb: Add and use new name() helper on HashAlgorithmIdentifier
2024-10-27 11:26:12 +01:00
stelar7
48bd094712
LibWeb: Implement RSAOAEP.encrypt()
2024-10-27 11:26:12 +01:00
Ben Wiederhake
b1056121f2
LibWeb: Implement WebCrypto AES-CBC decrypt operation
...
This lets us pass an additional (roughly) 15 WPT tests:
WebCryptoAPI/encrypt_decrypt/aes_cbc.https.any
2024-10-26 17:50:22 +02:00
Ben Wiederhake
eb193251b8
LibWeb: Implement WebCrypto AES-CBC encrypt operation
...
This lets us pass an additional (roughly) 20 WPT tests:
WebCryptoAPI/encrypt_decrypt/aes_cbc.https.any
2024-10-26 17:50:22 +02:00
Ben Wiederhake
d86dcac4f7
LibWeb: Implement WebCrypto AES-CBC generateKey operation
...
This is progress towards passing more WPT tests, although none of them
gets green due to this commit.
2024-10-26 17:50:22 +02:00
Ben Wiederhake
9255a1ac2e
LibWeb: Implement WebCrypto AES-CBC exportKey operation
...
This lets us pass an additional (roughly) 40 WPT tests:
WebCryptoAPI/import_export/symmetric_importKey.https.any
2024-10-26 17:50:22 +02:00
Ben Wiederhake
6f88376e24
LibWeb: Implement WebCrypto AES-CBC importKey operation
...
This alone lets us pass around 40 WPT tests:
WebCryptoAPI/import_export/symmetric_importKey.https.any
2024-10-26 17:50:22 +02:00
Ben Wiederhake
124bd115a1
LibWeb: Fix crash when importing malformed RSAOAEP key
...
This fixes a crash in WPT:
WebCryptoAPI/import_export/rsa_importKey.https.any
This allows us to pass 240 tests!
2024-10-26 00:14:42 +02:00
Ben Wiederhake
efad0b5676
LibWeb: Remove dead write in HKDF/PBKDF importKey operation
...
This corresponds to a recent change in the spec:
https://github.com/w3c/webcrypto/pull/379
2024-10-25 23:50:31 +02:00
Ben Wiederhake
ee3b86c3f8
LibWeb: Remove superfluous step in HKDF deriveBits operation
...
This corresponds to a recent change in the spec:
https://github.com/w3c/webcrypto/pull/372
Inspired by the following review comment:
https://github.com/LadybirdBrowser/ladybird/pull/1877#discussion_r1807648283
2024-10-25 23:50:31 +02:00
Andrew Kaster
2c3531ab78
LibWeb: Move JS::Promise <-> WebIDL conversion into IDL
...
This change also removes as much direct use of JS::Promise in LibWeb
as possible. When specs refer to `Promise<T>` they should be assumed
to be referring to the WebIDL Promise type, not the JS::Promise type.
The one exception is the HostPromiseRejectionTracker hook on the JS
VM. This facility and its associated sets and events are intended to
expose the exact opaque object handles that were rejected to author
code. This is not possible with the WebIDL Promise type, so we have
to use JS::Promise or JS::Object to hold onto the promises.
It also exposes which specs need some updates in the area of
promises. WebDriver stands out in this regard. WebAudio could use
some more cross-references to WebIDL as well to clarify things.
2024-10-25 14:04:21 -06:00
Ben Wiederhake
6d68d6ddb2
LibWeb: Test subtleties in HKDF 'salt' interpretation
...
This also doubles as HKDF implementation test.
2024-10-23 11:33:58 -06:00
Ben Wiederhake
f670c68ded
LibWeb: Implement and test SubtleCrypto interface for HKDF operations
...
This fixes several hundred if not thousands of WPT tests:
https://wpt.live/WebCryptoAPI/derive_bits_keys/hkdf.https.any.html?1-1000
2024-10-23 11:33:58 -06:00
Ben Wiederhake
6072ae5bae
LibWeb: Simplify WebCrypto accesses to keys
2024-10-23 11:33:58 -06:00
Andreas Kling
175f3febb8
LibWeb: Make DOMException take error message as a String
...
There was no need to use FlyString for error messages, and it just
caused a bunch of churn since these strings typically only existed
during the lifetime of the error.
2024-10-12 21:14:18 +02:00
Asutosh Variar
229b64a4b7
Everywhere: Convert from_string_view -> from_string_literal where static
2024-09-11 10:59:04 +01:00
sideshowbarker
51528ec677
LibWeb: Normalize all WebIDL definition lines to four leading spaces
...
This change takes all existing WebIDL files in the repo that had
definition lines without four leading spaces, and fixes them so they
have four leading spaces.
2024-09-10 21:16:53 +01:00
Dennis Camera
90a2dcfde1
LibWeb: Implement KeyAlgorithms for big-endian
2024-07-10 10:23:26 -06:00
Dennis Camera
81a0aa5725
LibWeb: Implement CryptoAlgorithms for big-endian
2024-07-10 10:23:26 -06:00
Matthew Olsson
9ea6ab0ad4
LibJS+LibWeb: Fix a ton of JS_CELL-like macro issues
2024-05-30 09:29:20 -06:00
Shannon Booth
4fe0cbcf85
LibWeb: Use 'FIXME' extended attribute where possible
...
This improves the debuggability of many live web pages :^)
2024-05-19 16:24:11 +02:00
Shannon Booth
bad44f8fc9
LibWeb: Remove Bindings/Forward.h from LibWeb/Forward.h
...
This was resulting in a whole lot of rebuilding whenever a new IDL
interface was added.
Instead, just directly include the prototype in every C++ file which
needs it. While we only really need a forward declaration in each cpp
file; including the full prototype header (which itself only includes
LibJS/Object.h, which is already transitively brought in by
PlatformObject) - it seems like a small price to pay compared to what
feels like a full rebuild of LibWeb whenever a new IDL file is added.
Given all of these includes are only needed for the ::initialize
method, there is probably a smart way of avoiding this problem
altogether. I've considered both using some macro trickery or generating
these functions somehow instead.
2024-04-27 18:29:35 -04:00
Matthew Olsson
aac873fcec
LibWeb: Fix a few "missing visit_edges" warnings from the GC verifier
2024-04-07 07:03:13 +02:00
Matthew Olsson
8450041b52
LibWeb: Fix some GCVerifier warnings
2024-04-07 07:03:13 +02:00
stelar7
7c7f01b82f
LibWeb: Add RSAOAEP.exportKey for the pkcs8 format
2024-04-05 21:53:12 +02:00
stelar7
f9dd028119
LibWeb: Add RSAOAEP.exportKey for the spki format
2024-04-05 21:53:12 +02:00