Timothy Flynn
93712b24bf
Everywhere: Hoist the Libraries folder to the top-level
2024-11-10 12:50:45 +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
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
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
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
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
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
stelar7
9f3c3925e0
LibWeb: Implement skeleton of SubtleCrypto.deriveKey
2024-04-04 21:00:40 +02:00
stelar7
abf55fe33d
LibWeb: Implement PBKDF2 getKeyLength for SubtleCrypto
2024-04-04 21:00:40 +02:00
stelar7
19bb62d60e
LibWeb: Implement PBKDF2 deriveBits for SubtleCrypto
2024-04-04 21:00:40 +02:00
stelar7
daf2c4ce46
LibWeb: Implement skeleton of SubtleCrypto.deriveBits
2024-04-04 21:00:40 +02:00
stelar7
35676491ec
LibWeb: Implement ED25519 verify for SubtleCrypto
2024-04-03 13:10:01 -06:00
stelar7
9ad10566b2
LibWeb: Implement ED25519 sign for SubtleCrypto
2024-04-03 13:10:01 -06:00
stelar7
ec015034bd
LibWeb: Implement ED25519 generateKey for SubtleCrypto
2024-04-03 13:10:01 -06:00
stelar7
069295d132
LibWeb: Improve NotSupported error message for normalize_an_algorithm
2024-04-03 13:10:01 -06:00
stelar7
ae230c9150
LibWeb: Implement most of ECDSA verify for SubtleCrypto
2024-04-03 13:10:01 -06:00
stelar7
6906b7c1e6
LibWeb: Implement skeleton of SubtleCrypto.verify
2024-04-03 13:10:01 -06:00
stelar7
bc2a5e24bc
LibWeb: Implement skeleton of ECDSA sign for SubtleCrypto
2024-04-03 13:10:01 -06:00
stelar7
41449814db
LibWeb: Implement generateKey for ECDSA
2024-04-03 13:10:01 -06:00
stelar7
cfae6523be
LibWeb: Implement skeleton of SubtleCrypto.sign
2024-04-03 13:10:01 -06:00
Andrew Kaster
cddbdf5ae9
LibWeb: Implement skeleton of RSA-OAEP decrypt for SubtleCrypto
...
The actual Crypto algorithm part isn't implemented yet, so we just copy
the ciphertext and claim that's the plaintext :^)
2024-03-25 17:01:23 -06:00
Andrew Kaster
29b68a1b10
LibWeb: Implement skeleton of RSA-OAEP encrypt for SubtleCrypto
...
The actual Crypto algorithm part isn't implemented yet, so we just copy
the plaintext and claim that's the ciphertext :^)
2024-03-25 17:01:23 -06:00
Andrew Kaster
d71bd185c6
LibWeb: Implement skeleton of SubtleCrypto.decrypt
2024-03-25 17:01:23 -06:00
Andrew Kaster
df3d0538a9
LibWeb: Implement skeleton of SubtleCrypto.encrypt
...
No algorithms implement this yet, but this is the high level entry
point.
2024-03-25 17:01:23 -06:00
Andrew Kaster
ae4d90c88a
LibWeb: Error out SubtleCrypto.digest with a OOM on Buffer copy error
...
Instead of returning a custom OperationError, let's just return a LibJS
defined OOM error instead.
2024-03-25 17:01:23 -06:00
Andrew Kaster
a0623a47de
LibWeb: Implement importKey for RSA-OAEP
2024-03-25 17:01:23 -06:00
Andrew Kaster
e422c93537
LibWeb: Make normalize_an_algorithm from SubtleCrypto public
...
We'll need to call this from other source files when implementing
specific algorithms.
2024-03-25 17:01:23 -06:00
Andreas Kling
c0d7f748ed
LibWeb: Avoid FlyString lookups when setting IDL interface prototypes
...
This commit introduces a WEB_SET_PROTOTYPE_FOR_INTERFACE macro that
caches the interface name in a local static FlyString. This means that
we only pay for FlyString-from-literal lookup once per browser lifetime
instead of every time the interface is instantiated.
2024-03-16 16:35:54 +01:00