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,866 +0,0 @@
[successes_AES-CBC.https.any.html]
[Success: generateKey({length: 128, name: AES-CBC}, true, [encrypt\])]
expected: FAIL
[Success: generateKey({length: 128, name: AES-CBC}, true, [decrypt, encrypt\])]
expected: FAIL
[Success: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, decrypt, encrypt\])]
expected: FAIL
[Success: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt\])]
expected: FAIL
[Success: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt\])]
expected: FAIL
[Success: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, encrypt\])]
expected: FAIL
[Success: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt\])]
expected: FAIL
[Success: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, encrypt\])]
expected: FAIL
[Success: generateKey({length: 128, name: AES-CBC}, true, [decrypt\])]
expected: FAIL
[Success: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, decrypt\])]
expected: FAIL
[Success: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt\])]
expected: FAIL
[Success: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, decrypt\])]
expected: FAIL
[Success: generateKey({length: 128, name: AES-CBC}, true, [wrapKey\])]
expected: FAIL
[Success: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey\])]
expected: FAIL
[Success: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey\])]
expected: FAIL
[Success: generateKey({length: 128, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey\])]
expected: FAIL
[Success: generateKey({length: 192, name: AES-CBC}, true, [encrypt\])]
expected: FAIL
[Success: generateKey({length: 192, name: AES-CBC}, true, [decrypt, encrypt\])]
expected: FAIL
[Success: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, decrypt, encrypt\])]
expected: FAIL
[Success: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt\])]
expected: FAIL
[Success: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt\])]
expected: FAIL
[Success: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, encrypt\])]
expected: FAIL
[Success: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt\])]
expected: FAIL
[Success: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, encrypt\])]
expected: FAIL
[Success: generateKey({length: 192, name: AES-CBC}, true, [decrypt\])]
expected: FAIL
[Success: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, decrypt\])]
expected: FAIL
[Success: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt\])]
expected: FAIL
[Success: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, decrypt\])]
expected: FAIL
[Success: generateKey({length: 192, name: AES-CBC}, true, [wrapKey\])]
expected: FAIL
[Success: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey\])]
expected: FAIL
[Success: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey\])]
expected: FAIL
[Success: generateKey({length: 192, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey\])]
expected: FAIL
[Success: generateKey({length: 256, name: AES-CBC}, true, [encrypt\])]
expected: FAIL
[Success: generateKey({length: 256, name: AES-CBC}, true, [decrypt, encrypt\])]
expected: FAIL
[Success: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, decrypt, encrypt\])]
expected: FAIL
[Success: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt\])]
expected: FAIL
[Success: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt\])]
expected: FAIL
[Success: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, encrypt\])]
expected: FAIL
[Success: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt\])]
expected: FAIL
[Success: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, encrypt\])]
expected: FAIL
[Success: generateKey({length: 256, name: AES-CBC}, true, [decrypt\])]
expected: FAIL
[Success: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, decrypt\])]
expected: FAIL
[Success: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt\])]
expected: FAIL
[Success: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, decrypt\])]
expected: FAIL
[Success: generateKey({length: 256, name: AES-CBC}, true, [wrapKey\])]
expected: FAIL
[Success: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey\])]
expected: FAIL
[Success: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey\])]
expected: FAIL
[Success: generateKey({length: 256, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey\])]
expected: FAIL
[Success: generateKey({length: 128, name: aes-cbc}, true, [encrypt\])]
expected: FAIL
[Success: generateKey({length: 128, name: aes-cbc}, true, [decrypt, encrypt\])]
expected: FAIL
[Success: generateKey({length: 128, name: aes-cbc}, true, [wrapKey, decrypt, encrypt\])]
expected: FAIL
[Success: generateKey({length: 128, name: aes-cbc}, true, [unwrapKey, wrapKey, decrypt, encrypt\])]
expected: FAIL
[Success: generateKey({length: 128, name: aes-cbc}, true, [unwrapKey, decrypt, encrypt\])]
expected: FAIL
[Success: generateKey({length: 128, name: aes-cbc}, true, [wrapKey, encrypt\])]
expected: FAIL
[Success: generateKey({length: 128, name: aes-cbc}, true, [unwrapKey, wrapKey, encrypt\])]
expected: FAIL
[Success: generateKey({length: 128, name: aes-cbc}, true, [unwrapKey, encrypt\])]
expected: FAIL
[Success: generateKey({length: 128, name: aes-cbc}, true, [decrypt\])]
expected: FAIL
[Success: generateKey({length: 128, name: aes-cbc}, true, [wrapKey, decrypt\])]
expected: FAIL
[Success: generateKey({length: 128, name: aes-cbc}, true, [unwrapKey, wrapKey, decrypt\])]
expected: FAIL
[Success: generateKey({length: 128, name: aes-cbc}, true, [unwrapKey, decrypt\])]
expected: FAIL
[Success: generateKey({length: 128, name: aes-cbc}, true, [wrapKey\])]
expected: FAIL
[Success: generateKey({length: 128, name: aes-cbc}, true, [unwrapKey, wrapKey\])]
expected: FAIL
[Success: generateKey({length: 128, name: aes-cbc}, true, [unwrapKey\])]
expected: FAIL
[Success: generateKey({length: 128, name: aes-cbc}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey\])]
expected: FAIL
[Success: generateKey({length: 192, name: aes-cbc}, true, [encrypt\])]
expected: FAIL
[Success: generateKey({length: 192, name: aes-cbc}, true, [decrypt, encrypt\])]
expected: FAIL
[Success: generateKey({length: 192, name: aes-cbc}, true, [wrapKey, decrypt, encrypt\])]
expected: FAIL
[Success: generateKey({length: 192, name: aes-cbc}, true, [unwrapKey, wrapKey, decrypt, encrypt\])]
expected: FAIL
[Success: generateKey({length: 192, name: aes-cbc}, true, [unwrapKey, decrypt, encrypt\])]
expected: FAIL
[Success: generateKey({length: 192, name: aes-cbc}, true, [wrapKey, encrypt\])]
expected: FAIL
[Success: generateKey({length: 192, name: aes-cbc}, true, [unwrapKey, wrapKey, encrypt\])]
expected: FAIL
[Success: generateKey({length: 192, name: aes-cbc}, true, [unwrapKey, encrypt\])]
expected: FAIL
[Success: generateKey({length: 192, name: aes-cbc}, true, [decrypt\])]
expected: FAIL
[Success: generateKey({length: 192, name: aes-cbc}, true, [wrapKey, decrypt\])]
expected: FAIL
[Success: generateKey({length: 192, name: aes-cbc}, true, [unwrapKey, wrapKey, decrypt\])]
expected: FAIL
[Success: generateKey({length: 192, name: aes-cbc}, true, [unwrapKey, decrypt\])]
expected: FAIL
[Success: generateKey({length: 192, name: aes-cbc}, true, [wrapKey\])]
expected: FAIL
[Success: generateKey({length: 192, name: aes-cbc}, true, [unwrapKey, wrapKey\])]
expected: FAIL
[Success: generateKey({length: 192, name: aes-cbc}, true, [unwrapKey\])]
expected: FAIL
[Success: generateKey({length: 192, name: aes-cbc}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey\])]
expected: FAIL
[Success: generateKey({length: 256, name: aes-cbc}, true, [encrypt\])]
expected: FAIL
[Success: generateKey({length: 256, name: aes-cbc}, true, [decrypt, encrypt\])]
expected: FAIL
[Success: generateKey({length: 256, name: aes-cbc}, true, [wrapKey, decrypt, encrypt\])]
expected: FAIL
[Success: generateKey({length: 256, name: aes-cbc}, true, [unwrapKey, wrapKey, decrypt, encrypt\])]
expected: FAIL
[Success: generateKey({length: 256, name: aes-cbc}, true, [unwrapKey, decrypt, encrypt\])]
expected: FAIL
[Success: generateKey({length: 256, name: aes-cbc}, true, [wrapKey, encrypt\])]
expected: FAIL
[Success: generateKey({length: 256, name: aes-cbc}, true, [unwrapKey, wrapKey, encrypt\])]
expected: FAIL
[Success: generateKey({length: 256, name: aes-cbc}, true, [unwrapKey, encrypt\])]
expected: FAIL
[Success: generateKey({length: 256, name: aes-cbc}, true, [decrypt\])]
expected: FAIL
[Success: generateKey({length: 256, name: aes-cbc}, true, [wrapKey, decrypt\])]
expected: FAIL
[Success: generateKey({length: 256, name: aes-cbc}, true, [unwrapKey, wrapKey, decrypt\])]
expected: FAIL
[Success: generateKey({length: 256, name: aes-cbc}, true, [unwrapKey, decrypt\])]
expected: FAIL
[Success: generateKey({length: 256, name: aes-cbc}, true, [wrapKey\])]
expected: FAIL
[Success: generateKey({length: 256, name: aes-cbc}, true, [unwrapKey, wrapKey\])]
expected: FAIL
[Success: generateKey({length: 256, name: aes-cbc}, true, [unwrapKey\])]
expected: FAIL
[Success: generateKey({length: 256, name: aes-cbc}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey\])]
expected: FAIL
[Success: generateKey({length: 128, name: Aes-cbc}, true, [encrypt\])]
expected: FAIL
[Success: generateKey({length: 128, name: Aes-cbc}, true, [decrypt, encrypt\])]
expected: FAIL
[Success: generateKey({length: 128, name: Aes-cbc}, true, [wrapKey, decrypt, encrypt\])]
expected: FAIL
[Success: generateKey({length: 128, name: Aes-cbc}, true, [unwrapKey, wrapKey, decrypt, encrypt\])]
expected: FAIL
[Success: generateKey({length: 128, name: Aes-cbc}, true, [unwrapKey, decrypt, encrypt\])]
expected: FAIL
[Success: generateKey({length: 128, name: Aes-cbc}, true, [wrapKey, encrypt\])]
expected: FAIL
[Success: generateKey({length: 128, name: Aes-cbc}, true, [unwrapKey, wrapKey, encrypt\])]
expected: FAIL
[Success: generateKey({length: 128, name: Aes-cbc}, true, [unwrapKey, encrypt\])]
expected: FAIL
[Success: generateKey({length: 128, name: Aes-cbc}, true, [decrypt\])]
expected: FAIL
[Success: generateKey({length: 128, name: Aes-cbc}, true, [wrapKey, decrypt\])]
expected: FAIL
[Success: generateKey({length: 128, name: Aes-cbc}, true, [unwrapKey, wrapKey, decrypt\])]
expected: FAIL
[Success: generateKey({length: 128, name: Aes-cbc}, true, [unwrapKey, decrypt\])]
expected: FAIL
[Success: generateKey({length: 128, name: Aes-cbc}, true, [wrapKey\])]
expected: FAIL
[Success: generateKey({length: 128, name: Aes-cbc}, true, [unwrapKey, wrapKey\])]
expected: FAIL
[Success: generateKey({length: 128, name: Aes-cbc}, true, [unwrapKey\])]
expected: FAIL
[Success: generateKey({length: 128, name: Aes-cbc}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey\])]
expected: FAIL
[Success: generateKey({length: 192, name: Aes-cbc}, true, [encrypt\])]
expected: FAIL
[Success: generateKey({length: 192, name: Aes-cbc}, true, [decrypt, encrypt\])]
expected: FAIL
[Success: generateKey({length: 192, name: Aes-cbc}, true, [wrapKey, decrypt, encrypt\])]
expected: FAIL
[Success: generateKey({length: 192, name: Aes-cbc}, true, [unwrapKey, wrapKey, decrypt, encrypt\])]
expected: FAIL
[Success: generateKey({length: 192, name: Aes-cbc}, true, [unwrapKey, decrypt, encrypt\])]
expected: FAIL
[Success: generateKey({length: 192, name: Aes-cbc}, true, [wrapKey, encrypt\])]
expected: FAIL
[Success: generateKey({length: 192, name: Aes-cbc}, true, [unwrapKey, wrapKey, encrypt\])]
expected: FAIL
[Success: generateKey({length: 192, name: Aes-cbc}, true, [unwrapKey, encrypt\])]
expected: FAIL
[Success: generateKey({length: 192, name: Aes-cbc}, true, [decrypt\])]
expected: FAIL
[Success: generateKey({length: 192, name: Aes-cbc}, true, [wrapKey, decrypt\])]
expected: FAIL
[Success: generateKey({length: 192, name: Aes-cbc}, true, [unwrapKey, wrapKey, decrypt\])]
expected: FAIL
[Success: generateKey({length: 192, name: Aes-cbc}, true, [unwrapKey, decrypt\])]
expected: FAIL
[Success: generateKey({length: 192, name: Aes-cbc}, true, [wrapKey\])]
expected: FAIL
[Success: generateKey({length: 192, name: Aes-cbc}, true, [unwrapKey, wrapKey\])]
expected: FAIL
[Success: generateKey({length: 192, name: Aes-cbc}, true, [unwrapKey\])]
expected: FAIL
[Success: generateKey({length: 192, name: Aes-cbc}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey\])]
expected: FAIL
[Success: generateKey({length: 256, name: Aes-cbc}, true, [encrypt\])]
expected: FAIL
[Success: generateKey({length: 256, name: Aes-cbc}, true, [decrypt, encrypt\])]
expected: FAIL
[Success: generateKey({length: 256, name: Aes-cbc}, true, [wrapKey, decrypt, encrypt\])]
expected: FAIL
[Success: generateKey({length: 256, name: Aes-cbc}, true, [unwrapKey, wrapKey, decrypt, encrypt\])]
expected: FAIL
[Success: generateKey({length: 256, name: Aes-cbc}, true, [unwrapKey, decrypt, encrypt\])]
expected: FAIL
[Success: generateKey({length: 256, name: Aes-cbc}, true, [wrapKey, encrypt\])]
expected: FAIL
[Success: generateKey({length: 256, name: Aes-cbc}, true, [unwrapKey, wrapKey, encrypt\])]
expected: FAIL
[Success: generateKey({length: 256, name: Aes-cbc}, true, [unwrapKey, encrypt\])]
expected: FAIL
[Success: generateKey({length: 256, name: Aes-cbc}, true, [decrypt\])]
expected: FAIL
[Success: generateKey({length: 256, name: Aes-cbc}, true, [wrapKey, decrypt\])]
expected: FAIL
[Success: generateKey({length: 256, name: Aes-cbc}, true, [unwrapKey, wrapKey, decrypt\])]
expected: FAIL
[Success: generateKey({length: 256, name: Aes-cbc}, true, [unwrapKey, decrypt\])]
expected: FAIL
[Success: generateKey({length: 256, name: Aes-cbc}, true, [wrapKey\])]
expected: FAIL
[Success: generateKey({length: 256, name: Aes-cbc}, true, [unwrapKey, wrapKey\])]
expected: FAIL
[Success: generateKey({length: 256, name: Aes-cbc}, true, [unwrapKey\])]
expected: FAIL
[Success: generateKey({length: 256, name: Aes-cbc}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey\])]
expected: FAIL
[successes_AES-CBC.https.any.worker.html]
[Success: generateKey({length: 128, name: AES-CBC}, true, [encrypt\])]
expected: FAIL
[Success: generateKey({length: 128, name: AES-CBC}, true, [decrypt, encrypt\])]
expected: FAIL
[Success: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, decrypt, encrypt\])]
expected: FAIL
[Success: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt\])]
expected: FAIL
[Success: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt\])]
expected: FAIL
[Success: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, encrypt\])]
expected: FAIL
[Success: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt\])]
expected: FAIL
[Success: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, encrypt\])]
expected: FAIL
[Success: generateKey({length: 128, name: AES-CBC}, true, [decrypt\])]
expected: FAIL
[Success: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, decrypt\])]
expected: FAIL
[Success: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt\])]
expected: FAIL
[Success: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, decrypt\])]
expected: FAIL
[Success: generateKey({length: 128, name: AES-CBC}, true, [wrapKey\])]
expected: FAIL
[Success: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey\])]
expected: FAIL
[Success: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey\])]
expected: FAIL
[Success: generateKey({length: 128, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey\])]
expected: FAIL
[Success: generateKey({length: 192, name: AES-CBC}, true, [encrypt\])]
expected: FAIL
[Success: generateKey({length: 192, name: AES-CBC}, true, [decrypt, encrypt\])]
expected: FAIL
[Success: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, decrypt, encrypt\])]
expected: FAIL
[Success: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt\])]
expected: FAIL
[Success: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt\])]
expected: FAIL
[Success: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, encrypt\])]
expected: FAIL
[Success: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt\])]
expected: FAIL
[Success: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, encrypt\])]
expected: FAIL
[Success: generateKey({length: 192, name: AES-CBC}, true, [decrypt\])]
expected: FAIL
[Success: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, decrypt\])]
expected: FAIL
[Success: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt\])]
expected: FAIL
[Success: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, decrypt\])]
expected: FAIL
[Success: generateKey({length: 192, name: AES-CBC}, true, [wrapKey\])]
expected: FAIL
[Success: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey\])]
expected: FAIL
[Success: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey\])]
expected: FAIL
[Success: generateKey({length: 192, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey\])]
expected: FAIL
[Success: generateKey({length: 256, name: AES-CBC}, true, [encrypt\])]
expected: FAIL
[Success: generateKey({length: 256, name: AES-CBC}, true, [decrypt, encrypt\])]
expected: FAIL
[Success: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, decrypt, encrypt\])]
expected: FAIL
[Success: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt\])]
expected: FAIL
[Success: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt\])]
expected: FAIL
[Success: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, encrypt\])]
expected: FAIL
[Success: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt\])]
expected: FAIL
[Success: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, encrypt\])]
expected: FAIL
[Success: generateKey({length: 256, name: AES-CBC}, true, [decrypt\])]
expected: FAIL
[Success: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, decrypt\])]
expected: FAIL
[Success: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt\])]
expected: FAIL
[Success: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, decrypt\])]
expected: FAIL
[Success: generateKey({length: 256, name: AES-CBC}, true, [wrapKey\])]
expected: FAIL
[Success: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey\])]
expected: FAIL
[Success: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey\])]
expected: FAIL
[Success: generateKey({length: 256, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey\])]
expected: FAIL
[Success: generateKey({length: 128, name: aes-cbc}, true, [encrypt\])]
expected: FAIL
[Success: generateKey({length: 128, name: aes-cbc}, true, [decrypt, encrypt\])]
expected: FAIL
[Success: generateKey({length: 128, name: aes-cbc}, true, [wrapKey, decrypt, encrypt\])]
expected: FAIL
[Success: generateKey({length: 128, name: aes-cbc}, true, [unwrapKey, wrapKey, decrypt, encrypt\])]
expected: FAIL
[Success: generateKey({length: 128, name: aes-cbc}, true, [unwrapKey, decrypt, encrypt\])]
expected: FAIL
[Success: generateKey({length: 128, name: aes-cbc}, true, [wrapKey, encrypt\])]
expected: FAIL
[Success: generateKey({length: 128, name: aes-cbc}, true, [unwrapKey, wrapKey, encrypt\])]
expected: FAIL
[Success: generateKey({length: 128, name: aes-cbc}, true, [unwrapKey, encrypt\])]
expected: FAIL
[Success: generateKey({length: 128, name: aes-cbc}, true, [decrypt\])]
expected: FAIL
[Success: generateKey({length: 128, name: aes-cbc}, true, [wrapKey, decrypt\])]
expected: FAIL
[Success: generateKey({length: 128, name: aes-cbc}, true, [unwrapKey, wrapKey, decrypt\])]
expected: FAIL
[Success: generateKey({length: 128, name: aes-cbc}, true, [unwrapKey, decrypt\])]
expected: FAIL
[Success: generateKey({length: 128, name: aes-cbc}, true, [wrapKey\])]
expected: FAIL
[Success: generateKey({length: 128, name: aes-cbc}, true, [unwrapKey, wrapKey\])]
expected: FAIL
[Success: generateKey({length: 128, name: aes-cbc}, true, [unwrapKey\])]
expected: FAIL
[Success: generateKey({length: 128, name: aes-cbc}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey\])]
expected: FAIL
[Success: generateKey({length: 192, name: aes-cbc}, true, [encrypt\])]
expected: FAIL
[Success: generateKey({length: 192, name: aes-cbc}, true, [decrypt, encrypt\])]
expected: FAIL
[Success: generateKey({length: 192, name: aes-cbc}, true, [wrapKey, decrypt, encrypt\])]
expected: FAIL
[Success: generateKey({length: 192, name: aes-cbc}, true, [unwrapKey, wrapKey, decrypt, encrypt\])]
expected: FAIL
[Success: generateKey({length: 192, name: aes-cbc}, true, [unwrapKey, decrypt, encrypt\])]
expected: FAIL
[Success: generateKey({length: 192, name: aes-cbc}, true, [wrapKey, encrypt\])]
expected: FAIL
[Success: generateKey({length: 192, name: aes-cbc}, true, [unwrapKey, wrapKey, encrypt\])]
expected: FAIL
[Success: generateKey({length: 192, name: aes-cbc}, true, [unwrapKey, encrypt\])]
expected: FAIL
[Success: generateKey({length: 192, name: aes-cbc}, true, [decrypt\])]
expected: FAIL
[Success: generateKey({length: 192, name: aes-cbc}, true, [wrapKey, decrypt\])]
expected: FAIL
[Success: generateKey({length: 192, name: aes-cbc}, true, [unwrapKey, wrapKey, decrypt\])]
expected: FAIL
[Success: generateKey({length: 192, name: aes-cbc}, true, [unwrapKey, decrypt\])]
expected: FAIL
[Success: generateKey({length: 192, name: aes-cbc}, true, [wrapKey\])]
expected: FAIL
[Success: generateKey({length: 192, name: aes-cbc}, true, [unwrapKey, wrapKey\])]
expected: FAIL
[Success: generateKey({length: 192, name: aes-cbc}, true, [unwrapKey\])]
expected: FAIL
[Success: generateKey({length: 192, name: aes-cbc}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey\])]
expected: FAIL
[Success: generateKey({length: 256, name: aes-cbc}, true, [encrypt\])]
expected: FAIL
[Success: generateKey({length: 256, name: aes-cbc}, true, [decrypt, encrypt\])]
expected: FAIL
[Success: generateKey({length: 256, name: aes-cbc}, true, [wrapKey, decrypt, encrypt\])]
expected: FAIL
[Success: generateKey({length: 256, name: aes-cbc}, true, [unwrapKey, wrapKey, decrypt, encrypt\])]
expected: FAIL
[Success: generateKey({length: 256, name: aes-cbc}, true, [unwrapKey, decrypt, encrypt\])]
expected: FAIL
[Success: generateKey({length: 256, name: aes-cbc}, true, [wrapKey, encrypt\])]
expected: FAIL
[Success: generateKey({length: 256, name: aes-cbc}, true, [unwrapKey, wrapKey, encrypt\])]
expected: FAIL
[Success: generateKey({length: 256, name: aes-cbc}, true, [unwrapKey, encrypt\])]
expected: FAIL
[Success: generateKey({length: 256, name: aes-cbc}, true, [decrypt\])]
expected: FAIL
[Success: generateKey({length: 256, name: aes-cbc}, true, [wrapKey, decrypt\])]
expected: FAIL
[Success: generateKey({length: 256, name: aes-cbc}, true, [unwrapKey, wrapKey, decrypt\])]
expected: FAIL
[Success: generateKey({length: 256, name: aes-cbc}, true, [unwrapKey, decrypt\])]
expected: FAIL
[Success: generateKey({length: 256, name: aes-cbc}, true, [wrapKey\])]
expected: FAIL
[Success: generateKey({length: 256, name: aes-cbc}, true, [unwrapKey, wrapKey\])]
expected: FAIL
[Success: generateKey({length: 256, name: aes-cbc}, true, [unwrapKey\])]
expected: FAIL
[Success: generateKey({length: 256, name: aes-cbc}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey\])]
expected: FAIL
[Success: generateKey({length: 128, name: Aes-cbc}, true, [encrypt\])]
expected: FAIL
[Success: generateKey({length: 128, name: Aes-cbc}, true, [decrypt, encrypt\])]
expected: FAIL
[Success: generateKey({length: 128, name: Aes-cbc}, true, [wrapKey, decrypt, encrypt\])]
expected: FAIL
[Success: generateKey({length: 128, name: Aes-cbc}, true, [unwrapKey, wrapKey, decrypt, encrypt\])]
expected: FAIL
[Success: generateKey({length: 128, name: Aes-cbc}, true, [unwrapKey, decrypt, encrypt\])]
expected: FAIL
[Success: generateKey({length: 128, name: Aes-cbc}, true, [wrapKey, encrypt\])]
expected: FAIL
[Success: generateKey({length: 128, name: Aes-cbc}, true, [unwrapKey, wrapKey, encrypt\])]
expected: FAIL
[Success: generateKey({length: 128, name: Aes-cbc}, true, [unwrapKey, encrypt\])]
expected: FAIL
[Success: generateKey({length: 128, name: Aes-cbc}, true, [decrypt\])]
expected: FAIL
[Success: generateKey({length: 128, name: Aes-cbc}, true, [wrapKey, decrypt\])]
expected: FAIL
[Success: generateKey({length: 128, name: Aes-cbc}, true, [unwrapKey, wrapKey, decrypt\])]
expected: FAIL
[Success: generateKey({length: 128, name: Aes-cbc}, true, [unwrapKey, decrypt\])]
expected: FAIL
[Success: generateKey({length: 128, name: Aes-cbc}, true, [wrapKey\])]
expected: FAIL
[Success: generateKey({length: 128, name: Aes-cbc}, true, [unwrapKey, wrapKey\])]
expected: FAIL
[Success: generateKey({length: 128, name: Aes-cbc}, true, [unwrapKey\])]
expected: FAIL
[Success: generateKey({length: 128, name: Aes-cbc}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey\])]
expected: FAIL
[Success: generateKey({length: 192, name: Aes-cbc}, true, [encrypt\])]
expected: FAIL
[Success: generateKey({length: 192, name: Aes-cbc}, true, [decrypt, encrypt\])]
expected: FAIL
[Success: generateKey({length: 192, name: Aes-cbc}, true, [wrapKey, decrypt, encrypt\])]
expected: FAIL
[Success: generateKey({length: 192, name: Aes-cbc}, true, [unwrapKey, wrapKey, decrypt, encrypt\])]
expected: FAIL
[Success: generateKey({length: 192, name: Aes-cbc}, true, [unwrapKey, decrypt, encrypt\])]
expected: FAIL
[Success: generateKey({length: 192, name: Aes-cbc}, true, [wrapKey, encrypt\])]
expected: FAIL
[Success: generateKey({length: 192, name: Aes-cbc}, true, [unwrapKey, wrapKey, encrypt\])]
expected: FAIL
[Success: generateKey({length: 192, name: Aes-cbc}, true, [unwrapKey, encrypt\])]
expected: FAIL
[Success: generateKey({length: 192, name: Aes-cbc}, true, [decrypt\])]
expected: FAIL
[Success: generateKey({length: 192, name: Aes-cbc}, true, [wrapKey, decrypt\])]
expected: FAIL
[Success: generateKey({length: 192, name: Aes-cbc}, true, [unwrapKey, wrapKey, decrypt\])]
expected: FAIL
[Success: generateKey({length: 192, name: Aes-cbc}, true, [unwrapKey, decrypt\])]
expected: FAIL
[Success: generateKey({length: 192, name: Aes-cbc}, true, [wrapKey\])]
expected: FAIL
[Success: generateKey({length: 192, name: Aes-cbc}, true, [unwrapKey, wrapKey\])]
expected: FAIL
[Success: generateKey({length: 192, name: Aes-cbc}, true, [unwrapKey\])]
expected: FAIL
[Success: generateKey({length: 192, name: Aes-cbc}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey\])]
expected: FAIL
[Success: generateKey({length: 256, name: Aes-cbc}, true, [encrypt\])]
expected: FAIL
[Success: generateKey({length: 256, name: Aes-cbc}, true, [decrypt, encrypt\])]
expected: FAIL
[Success: generateKey({length: 256, name: Aes-cbc}, true, [wrapKey, decrypt, encrypt\])]
expected: FAIL
[Success: generateKey({length: 256, name: Aes-cbc}, true, [unwrapKey, wrapKey, decrypt, encrypt\])]
expected: FAIL
[Success: generateKey({length: 256, name: Aes-cbc}, true, [unwrapKey, decrypt, encrypt\])]
expected: FAIL
[Success: generateKey({length: 256, name: Aes-cbc}, true, [wrapKey, encrypt\])]
expected: FAIL
[Success: generateKey({length: 256, name: Aes-cbc}, true, [unwrapKey, wrapKey, encrypt\])]
expected: FAIL
[Success: generateKey({length: 256, name: Aes-cbc}, true, [unwrapKey, encrypt\])]
expected: FAIL
[Success: generateKey({length: 256, name: Aes-cbc}, true, [decrypt\])]
expected: FAIL
[Success: generateKey({length: 256, name: Aes-cbc}, true, [wrapKey, decrypt\])]
expected: FAIL
[Success: generateKey({length: 256, name: Aes-cbc}, true, [unwrapKey, wrapKey, decrypt\])]
expected: FAIL
[Success: generateKey({length: 256, name: Aes-cbc}, true, [unwrapKey, decrypt\])]
expected: FAIL
[Success: generateKey({length: 256, name: Aes-cbc}, true, [wrapKey\])]
expected: FAIL
[Success: generateKey({length: 256, name: Aes-cbc}, true, [unwrapKey, wrapKey\])]
expected: FAIL
[Success: generateKey({length: 256, name: Aes-cbc}, true, [unwrapKey\])]
expected: FAIL
[Success: generateKey({length: 256, name: Aes-cbc}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey\])]
expected: FAIL