crypto: Implement encrypt/decrypt for AES-CBC + JWK support (#33795)

* Add support for raw importKey with AES-CBC

Signed-off-by: Daniel Adams <msub2official@gmail.com>

* Support JWK import/export, importKey for AES-CBC

Signed-off-by: Daniel Adams <msub2official@gmail.com>

* Implement encrypt/decrypt for AES-CBC

Signed-off-by: Daniel Adams <msub2official@gmail.com>

* Update expectations

Signed-off-by: Daniel Adams <msub2official@gmail.com>

* Update Cargo.lock

Signed-off-by: Daniel Adams <msub2official@gmail.com>

* Pass MutableHandleObject as arg instead of returning raw pointer

Signed-off-by: Daniel Adams <msub2official@gmail.com>

* Swap order of checks in generate_key_aes_cbc

- Fixes WPT tests that expect to error on algorithm first before usages

Signed-off-by: Daniel Adams <msub2official@gmail.com>

* Avoid potential GC hazard with array_buffer_ptr

Signed-off-by: Daniel Adams <msub2official@gmail.com>

* Update expectations for discards context

Signed-off-by: Daniel Adams <msub2official@gmail.com>

---------

Signed-off-by: Daniel Adams <msub2official@gmail.com>
This commit is contained in:
Daniel Adams 2024-10-20 21:32:19 -10:00 committed by GitHub
parent 397c5adf79
commit 45267c9f28
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
55 changed files with 163938 additions and 2799 deletions

View file

@ -1,5 +1,578 @@
[rsa_pss.https.any.worker.html]
expected: ERROR
[importVectorKeys step: RSA-PSS with SHA-1 and no salt verification]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-256 and no salt verification]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-384 and no salt verification]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-512 and no salt verification]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-1, salted verification]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-256, salted verification]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-384, salted verification]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-512, salted verification]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-1 and no salt verification with altered signature after call]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-256 and no salt verification with altered signature after call]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-384 and no salt verification with altered signature after call]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-512 and no salt verification with altered signature after call]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-1, salted verification with altered signature after call]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-256, salted verification with altered signature after call]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-384, salted verification with altered signature after call]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-512, salted verification with altered signature after call]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-1 and no salt with altered plaintext after call]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-256 and no salt with altered plaintext after call]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-384 and no salt with altered plaintext after call]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-512 and no salt with altered plaintext after call]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-1, salted with altered plaintext after call]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-256, salted with altered plaintext after call]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-384, salted with altered plaintext after call]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-512, salted with altered plaintext after call]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-1 and no salt using privateKey to verify]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-256 and no salt using privateKey to verify]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-384 and no salt using privateKey to verify]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-512 and no salt using privateKey to verify]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-1, salted using privateKey to verify]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-256, salted using privateKey to verify]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-384, salted using privateKey to verify]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-512, salted using privateKey to verify]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-1 and no salt using publicKey to sign]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-256 and no salt using publicKey to sign]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-384 and no salt using publicKey to sign]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-512 and no salt using publicKey to sign]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-1, salted using publicKey to sign]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-256, salted using publicKey to sign]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-384, salted using publicKey to sign]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-512, salted using publicKey to sign]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-1 and no salt no verify usage]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-256 and no salt no verify usage]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-384 and no salt no verify usage]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-512 and no salt no verify usage]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-1, salted no verify usage]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-256, salted no verify usage]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-384, salted no verify usage]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-512, salted no verify usage]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-1 and no salt round trip]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-256 and no salt round trip]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-384 and no salt round trip]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-512 and no salt round trip]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-1, salted round trip]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-256, salted round trip]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-384, salted round trip]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-512, salted round trip]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-1 and no salt signing with wrong algorithm name]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-256 and no salt signing with wrong algorithm name]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-384 and no salt signing with wrong algorithm name]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-512 and no salt signing with wrong algorithm name]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-1, salted signing with wrong algorithm name]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-256, salted signing with wrong algorithm name]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-384, salted signing with wrong algorithm name]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-512, salted signing with wrong algorithm name]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-1 and no salt verification with wrong algorithm name]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-256 and no salt verification with wrong algorithm name]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-384 and no salt verification with wrong algorithm name]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-512 and no salt verification with wrong algorithm name]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-1, salted verification with wrong algorithm name]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-256, salted verification with wrong algorithm name]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-384, salted verification with wrong algorithm name]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-512, salted verification with wrong algorithm name]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-1 and no salt verification failure with altered signature]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-256 and no salt verification failure with altered signature]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-384 and no salt verification failure with altered signature]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-512 and no salt verification failure with altered signature]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-1, salted verification failure with altered signature]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-256, salted verification failure with altered signature]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-384, salted verification failure with altered signature]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-512, salted verification failure with altered signature]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-1 and no salt verification failure with wrong saltLength]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-256 and no salt verification failure with wrong saltLength]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-384 and no salt verification failure with wrong saltLength]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-512 and no salt verification failure with wrong saltLength]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-1, salted verification failure with wrong saltLength]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-256, salted verification failure with wrong saltLength]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-384, salted verification failure with wrong saltLength]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-512, salted verification failure with wrong saltLength]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-1 and no salt verification failure with altered plaintext]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-256 and no salt verification failure with altered plaintext]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-384 and no salt verification failure with altered plaintext]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-512 and no salt verification failure with altered plaintext]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-1, salted verification failure with altered plaintext]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-256, salted verification failure with altered plaintext]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-384, salted verification failure with altered plaintext]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-512, salted verification failure with altered plaintext]
expected: FAIL
[rsa_pss.https.any.html]
expected: ERROR
[importVectorKeys step: RSA-PSS with SHA-1 and no salt verification]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-256 and no salt verification]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-384 and no salt verification]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-512 and no salt verification]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-1, salted verification]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-256, salted verification]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-384, salted verification]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-512, salted verification]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-1 and no salt verification with altered signature after call]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-256 and no salt verification with altered signature after call]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-384 and no salt verification with altered signature after call]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-512 and no salt verification with altered signature after call]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-1, salted verification with altered signature after call]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-256, salted verification with altered signature after call]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-384, salted verification with altered signature after call]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-512, salted verification with altered signature after call]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-1 and no salt with altered plaintext after call]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-256 and no salt with altered plaintext after call]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-384 and no salt with altered plaintext after call]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-512 and no salt with altered plaintext after call]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-1, salted with altered plaintext after call]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-256, salted with altered plaintext after call]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-384, salted with altered plaintext after call]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-512, salted with altered plaintext after call]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-1 and no salt using privateKey to verify]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-256 and no salt using privateKey to verify]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-384 and no salt using privateKey to verify]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-512 and no salt using privateKey to verify]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-1, salted using privateKey to verify]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-256, salted using privateKey to verify]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-384, salted using privateKey to verify]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-512, salted using privateKey to verify]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-1 and no salt using publicKey to sign]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-256 and no salt using publicKey to sign]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-384 and no salt using publicKey to sign]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-512 and no salt using publicKey to sign]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-1, salted using publicKey to sign]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-256, salted using publicKey to sign]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-384, salted using publicKey to sign]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-512, salted using publicKey to sign]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-1 and no salt no verify usage]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-256 and no salt no verify usage]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-384 and no salt no verify usage]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-512 and no salt no verify usage]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-1, salted no verify usage]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-256, salted no verify usage]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-384, salted no verify usage]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-512, salted no verify usage]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-1 and no salt round trip]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-256 and no salt round trip]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-384 and no salt round trip]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-512 and no salt round trip]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-1, salted round trip]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-256, salted round trip]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-384, salted round trip]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-512, salted round trip]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-1 and no salt signing with wrong algorithm name]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-256 and no salt signing with wrong algorithm name]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-384 and no salt signing with wrong algorithm name]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-512 and no salt signing with wrong algorithm name]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-1, salted signing with wrong algorithm name]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-256, salted signing with wrong algorithm name]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-384, salted signing with wrong algorithm name]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-512, salted signing with wrong algorithm name]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-1 and no salt verification with wrong algorithm name]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-256 and no salt verification with wrong algorithm name]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-384 and no salt verification with wrong algorithm name]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-512 and no salt verification with wrong algorithm name]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-1, salted verification with wrong algorithm name]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-256, salted verification with wrong algorithm name]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-384, salted verification with wrong algorithm name]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-512, salted verification with wrong algorithm name]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-1 and no salt verification failure with altered signature]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-256 and no salt verification failure with altered signature]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-384 and no salt verification failure with altered signature]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-512 and no salt verification failure with altered signature]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-1, salted verification failure with altered signature]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-256, salted verification failure with altered signature]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-384, salted verification failure with altered signature]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-512, salted verification failure with altered signature]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-1 and no salt verification failure with wrong saltLength]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-256 and no salt verification failure with wrong saltLength]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-384 and no salt verification failure with wrong saltLength]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-512 and no salt verification failure with wrong saltLength]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-1, salted verification failure with wrong saltLength]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-256, salted verification failure with wrong saltLength]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-384, salted verification failure with wrong saltLength]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-512, salted verification failure with wrong saltLength]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-1 and no salt verification failure with altered plaintext]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-256 and no salt verification failure with altered plaintext]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-384 and no salt verification failure with altered plaintext]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-512 and no salt verification failure with altered plaintext]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-1, salted verification failure with altered plaintext]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-256, salted verification failure with altered plaintext]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-384, salted verification failure with altered plaintext]
expected: FAIL
[importVectorKeys step: RSA-PSS with SHA-512, salted verification failure with altered plaintext]
expected: FAIL