Implement subtlecrypto.deriveKey (#34185)

* Implement NormalizedAlgorithm::get_key_length

This is a minimal implementation, which will make
the DeriveKey operation work for AES-CTR keys in
the future.

Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>

* Implement SubtleCrypto.deriveKey

Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>

* Update WPT expectations

Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>

---------

Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
This commit is contained in:
Simon Wülker 2024-11-08 13:59:01 +01:00 committed by GitHub
parent fe58556c0b
commit 6b94b2c684
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
8 changed files with 159 additions and 13045 deletions

View file

@ -26,12 +26,6 @@
[X25519 mixed case parameters]
expected: FAIL
[X25519 missing public property]
expected: FAIL
[X25519 public property of algorithm is not a CryptoKey]
expected: FAIL
[X25519 mismatched algorithms]
expected: FAIL
@ -77,12 +71,6 @@
[X25519 mixed case parameters]
expected: FAIL
[X25519 missing public property]
expected: FAIL
[X25519 public property of algorithm is not a CryptoKey]
expected: FAIL
[X25519 mismatched algorithms]
expected: FAIL

View file

@ -23,12 +23,6 @@
[X448 mixed case parameters]
expected: FAIL
[X448 missing public property]
expected: FAIL
[X448 public property of algorithm is not a CryptoKey]
expected: FAIL
[X448 mismatched algorithms]
expected: FAIL
@ -71,12 +65,6 @@
[X448 mixed case parameters]
expected: FAIL
[X448 missing public property]
expected: FAIL
[X448 public property of algorithm is not a CryptoKey]
expected: FAIL
[X448 mismatched algorithms]
expected: FAIL

View file

@ -5,12 +5,6 @@
[P-521 mixed case parameters]
expected: FAIL
[P-521 missing public curve]
expected: FAIL
[P-521 public property of algorithm is not a CryptoKey]
expected: FAIL
[P-521 mismatched curves]
expected: FAIL
@ -35,12 +29,6 @@
[P-256 mixed case parameters]
expected: FAIL
[P-256 missing public curve]
expected: FAIL
[P-256 public property of algorithm is not a CryptoKey]
expected: FAIL
[P-256 mismatched curves]
expected: FAIL
@ -65,12 +53,6 @@
[P-384 mixed case parameters]
expected: FAIL
[P-384 missing public curve]
expected: FAIL
[P-384 public property of algorithm is not a CryptoKey]
expected: FAIL
[P-384 mismatched curves]
expected: FAIL
@ -97,12 +79,6 @@
[P-521 mixed case parameters]
expected: FAIL
[P-521 missing public curve]
expected: FAIL
[P-521 public property of algorithm is not a CryptoKey]
expected: FAIL
[P-521 mismatched curves]
expected: FAIL
@ -127,12 +103,6 @@
[P-256 mixed case parameters]
expected: FAIL
[P-256 missing public curve]
expected: FAIL
[P-256 public property of algorithm is not a CryptoKey]
expected: FAIL
[P-256 mismatched curves]
expected: FAIL
@ -157,12 +127,6 @@
[P-384 mixed case parameters]
expected: FAIL
[P-384 missing public curve]
expected: FAIL
[P-384 public property of algorithm is not a CryptoKey]
expected: FAIL
[P-384 mismatched curves]
expected: FAIL

File diff suppressed because it is too large Load diff

View file

@ -5,9 +5,6 @@
[SubtleCrypto interface: operation verify(AlgorithmIdentifier, CryptoKey, BufferSource, BufferSource)]
expected: FAIL
[SubtleCrypto interface: operation deriveKey(AlgorithmIdentifier, CryptoKey, AlgorithmIdentifier, boolean, sequence<KeyUsage>)]
expected: FAIL
[SubtleCrypto interface: operation deriveBits(AlgorithmIdentifier, CryptoKey, unsigned long)]
expected: FAIL
@ -29,12 +26,6 @@
[SubtleCrypto interface: calling verify(AlgorithmIdentifier, CryptoKey, BufferSource, BufferSource) on crypto.subtle with too few arguments must throw TypeError]
expected: FAIL
[SubtleCrypto interface: crypto.subtle must inherit property "deriveKey(AlgorithmIdentifier, CryptoKey, AlgorithmIdentifier, boolean, sequence<KeyUsage>)" with the proper type]
expected: FAIL
[SubtleCrypto interface: calling deriveKey(AlgorithmIdentifier, CryptoKey, AlgorithmIdentifier, boolean, sequence<KeyUsage>) on crypto.subtle with too few arguments must throw TypeError]
expected: FAIL
[SubtleCrypto interface: crypto.subtle must inherit property "deriveBits(AlgorithmIdentifier, CryptoKey, unsigned long)" with the proper type]
expected: FAIL
@ -61,9 +52,6 @@
[SubtleCrypto interface: operation verify(AlgorithmIdentifier, CryptoKey, BufferSource, BufferSource)]
expected: FAIL
[SubtleCrypto interface: operation deriveKey(AlgorithmIdentifier, CryptoKey, AlgorithmIdentifier, boolean, sequence<KeyUsage>)]
expected: FAIL
[SubtleCrypto interface: operation deriveBits(AlgorithmIdentifier, CryptoKey, unsigned long)]
expected: FAIL
@ -85,12 +73,6 @@
[SubtleCrypto interface: calling verify(AlgorithmIdentifier, CryptoKey, BufferSource, BufferSource) on crypto.subtle with too few arguments must throw TypeError]
expected: FAIL
[SubtleCrypto interface: crypto.subtle must inherit property "deriveKey(AlgorithmIdentifier, CryptoKey, AlgorithmIdentifier, boolean, sequence<KeyUsage>)" with the proper type]
expected: FAIL
[SubtleCrypto interface: calling deriveKey(AlgorithmIdentifier, CryptoKey, AlgorithmIdentifier, boolean, sequence<KeyUsage>) on crypto.subtle with too few arguments must throw TypeError]
expected: FAIL
[SubtleCrypto interface: crypto.subtle must inherit property "deriveBits(AlgorithmIdentifier, CryptoKey, unsigned long)" with the proper type]
expected: FAIL