WebKit Bugzilla
Attachment 342050 Details for
Bug 186267
: Sync web-platform-tests repo to 197cdad
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-186267-20180606122556.patch (text/plain), 3.46 MB, created by
Brendan McLoughlin
on 2018-06-06 09:25:58 PDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Brendan McLoughlin
Created:
2018-06-06 09:25:58 PDT
Size:
3.46 MB
patch
obsolete
>Subversion Revision: 232538 >diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog >index 6a2fd1f186149be1e499b87755fdca50b644a9f1..1f82ef91ad87487bd9e37e5863d36f341ef62f3c 100644 >--- a/LayoutTests/ChangeLog >+++ b/LayoutTests/ChangeLog >@@ -1,3 +1,15 @@ >+2018-06-06 Brendan McLoughlin <brendan@bocoup.com> >+ >+ Sync web-platform-tests repo to 197cdad >+ https://bugs.webkit.org/show_bug.cgi?id=186267 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * TestExpectations: >+ * platform/mac/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-PSS.https.worker-expected.txt: >+ * platform/mac/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-PSS.https.worker-expected.txt: >+ * platform/mac/imported/w3c/web-platform-tests/beacon/headers/header-content-type-expected.txt: >+ > 2018-06-06 Alicia Boya GarcÃa <aboya@igalia.com> > > [GTK] Unreviewed test gardening >diff --git a/LayoutTests/imported/w3c/ChangeLog b/LayoutTests/imported/w3c/ChangeLog >index 5be1710baf367d82bef81ba714574a272e49fbbc..ed8d4dbb19a07687459c4bd792fd19d6bae453c3 100644 >--- a/LayoutTests/imported/w3c/ChangeLog >+++ b/LayoutTests/imported/w3c/ChangeLog >@@ -1,3 +1,372 @@ >+2018-06-06 Brendan McLoughlin <brendan@bocoup.com> >+ >+ Sync web-platform-tests repo to 197cdad >+ https://bugs.webkit.org/show_bug.cgi?id=186267 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * resources/resource-files.json: >+ * web-platform-tests/2dcontext/imagebitmap/createImageBitmap-transfer.html: >+ * web-platform-tests/2dcontext/imagebitmap/w3c-import.log: >+ * web-platform-tests/BackgroundSync/OWNERS: Added. >+ * web-platform-tests/BackgroundSync/interfaces.any-expected.txt: Added. >+ * web-platform-tests/BackgroundSync/interfaces.any.html: Copied from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-CBC.https.worker.html. >+ * web-platform-tests/BackgroundSync/interfaces.any.js: Added. >+ (promise_test.async): >+ * web-platform-tests/BackgroundSync/interfaces.any.worker-expected.txt: Added. >+ * web-platform-tests/BackgroundSync/interfaces.any.worker.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-CTR.https.worker.html. >+ * web-platform-tests/BackgroundSync/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/FileAPI/BlobURL/support/w3c-import.log. >+ * web-platform-tests/FileAPI/BlobURL/support/file_test2.txt: Added. >+ * web-platform-tests/FileAPI/BlobURL/support/w3c-import.log: >+ * web-platform-tests/FileAPI/FileReader/support/file_test1.txt: Added. >+ * web-platform-tests/FileAPI/FileReader/workers-expected.txt: Added. >+ * web-platform-tests/FileAPI/FileReader/workers.html: Added. >+ * web-platform-tests/FileAPI/blob/Blob-constructor-endings-expected.txt: Added. >+ * web-platform-tests/FileAPI/blob/Blob-constructor-endings.html: Added. >+ * web-platform-tests/FileAPI/blob/w3c-import.log: >+ * web-platform-tests/FileAPI/file/File-constructor-endings-expected.txt: Added. >+ * web-platform-tests/FileAPI/file/File-constructor-endings.html: Added. >+ * web-platform-tests/FileAPI/file/send-file-form-expected.txt: Added. >+ * web-platform-tests/FileAPI/file/send-file-form-iso-2022-jp.tentative-expected.txt: Added. >+ * web-platform-tests/FileAPI/file/send-file-form-iso-2022-jp.tentative.html: Added. >+ * web-platform-tests/FileAPI/file/send-file-form-utf-8-expected.txt: Added. >+ * web-platform-tests/FileAPI/file/send-file-form-utf-8.html: Added. >+ * web-platform-tests/FileAPI/file/send-file-form-windows-1252.tentative-expected.txt: Added. >+ * web-platform-tests/FileAPI/file/send-file-form-windows-1252.tentative.html: Added. >+ * web-platform-tests/FileAPI/file/send-file-form-x-user-defined.tentative-expected.txt: Added. >+ * web-platform-tests/FileAPI/file/send-file-form-x-user-defined.tentative.html: Added. >+ * web-platform-tests/FileAPI/file/send-file-form.html: Added. >+ * web-platform-tests/FileAPI/historical.https-expected.txt: >+ * web-platform-tests/FileAPI/historical.https.html: >+ * web-platform-tests/FileAPI/reading-data-section/FileReader-multiple-reads-expected.txt: >+ * web-platform-tests/FileAPI/reading-data-section/FileReader-multiple-reads.html: >+ * web-platform-tests/FileAPI/reading-data-section/filereader_readAsBinaryString-expected.txt: Added. >+ * web-platform-tests/FileAPI/reading-data-section/filereader_readAsBinaryString.html: Added. >+ * web-platform-tests/FileAPI/reading-data-section/w3c-import.log: >+ * web-platform-tests/FileAPI/support/send-file-form-helper.js: Added. >+ (const.formPostFileUploadTest): >+ * web-platform-tests/FileAPI/support/w3c-import.log: >+ * web-platform-tests/FileAPI/unicode-expected.txt: Added. >+ * web-platform-tests/FileAPI/unicode.html: Added. >+ * web-platform-tests/FileAPI/url/resources/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/FileAPI/blob/w3c-import.log. >+ * web-platform-tests/FileAPI/url/url-in-tags-revoke.window.js: Added. >+ (async_test.t.frame.onload.t.step_func_done): >+ (async_test.t.frame.onload.t.step_func): >+ (async_test.t.add_completion_callback): >+ (async_test.t.win.onload.t.step_func_done): >+ (receive_message_on_channel): >+ (async_test.t.const.blob.new.Blob.window_contents_for_channel): >+ (async_test.t.e.onload.t.step_func_done): >+ * web-platform-tests/FileAPI/url/url-in-tags.window.js: >+ (async_test.t.frame.contentWindow.onscroll.t.step_func_done): >+ * web-platform-tests/FileAPI/url/url-reload.window.js: Added. >+ (blob_url_reload_test): >+ * web-platform-tests/FileAPI/url/w3c-import.log: >+ * web-platform-tests/FileAPI/w3c-import.log: >+ * web-platform-tests/IndexedDB/bigint_value-expected.txt: Added. >+ * web-platform-tests/IndexedDB/bigint_value.htm: Added. >+ * web-platform-tests/IndexedDB/historical-expected.txt: >+ * web-platform-tests/IndexedDB/historical.html: >+ * web-platform-tests/IndexedDB/idbcursor-iterating-update-expected.txt: Added. >+ * web-platform-tests/IndexedDB/idbcursor-iterating-update.htm: Added. >+ * web-platform-tests/IndexedDB/interleaved-cursors-common.js: Added. >+ (objectKey): >+ (objectValue): >+ (writeCursorObjects): >+ (interleaveCursors): >+ * web-platform-tests/IndexedDB/interleaved-cursors-large-expected.txt: Added. >+ * web-platform-tests/IndexedDB/interleaved-cursors-large.html: Added. >+ * web-platform-tests/IndexedDB/interleaved-cursors-small-expected.txt: Added. >+ * web-platform-tests/IndexedDB/interleaved-cursors-small.html: Added. >+ * web-platform-tests/IndexedDB/keypath-special-identifiers-expected.txt: >+ * web-platform-tests/IndexedDB/keypath-special-identifiers.htm: >+ * web-platform-tests/IndexedDB/keypath.htm: >+ * web-platform-tests/IndexedDB/support.js: >+ (add_completion_callback): >+ (indexeddb_test): >+ * web-platform-tests/IndexedDB/w3c-import.log: >+ * web-platform-tests/IndexedDB/wasm-module-value-expected.txt: Added. >+ * web-platform-tests/IndexedDB/wasm-module-value.html: Added. >+ * web-platform-tests/WebCryptoAPI/generateKey/failures_AES-CBC.https.any-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-CBC.https.worker-expected.txt. >+ * web-platform-tests/WebCryptoAPI/generateKey/failures_AES-CBC.https.any.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-GCM.https.worker.html. >+ * web-platform-tests/WebCryptoAPI/generateKey/failures_AES-CBC.https.any.js: Added. >+ * web-platform-tests/WebCryptoAPI/generateKey/failures_AES-CBC.https.any.worker-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-CBC.https.worker-expected.txt. >+ * web-platform-tests/WebCryptoAPI/generateKey/failures_AES-CBC.https.any.worker.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-KW.https.worker.html. >+ * web-platform-tests/WebCryptoAPI/generateKey/failures_AES-CBC.https.worker-expected.txt: >+ * web-platform-tests/WebCryptoAPI/generateKey/failures_AES-CBC.https.worker.js: Removed. >+ * web-platform-tests/WebCryptoAPI/generateKey/failures_AES-CTR.https.any-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-CTR.https.worker-expected.txt. >+ * web-platform-tests/WebCryptoAPI/generateKey/failures_AES-CTR.https.any.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_ECDH.https.worker.html. >+ * web-platform-tests/WebCryptoAPI/generateKey/failures_AES-CTR.https.any.js: Added. >+ * web-platform-tests/WebCryptoAPI/generateKey/failures_AES-CTR.https.any.worker-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-CTR.https.worker-expected.txt. >+ * web-platform-tests/WebCryptoAPI/generateKey/failures_AES-CTR.https.any.worker.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_ECDSA.https.worker.html. >+ * web-platform-tests/WebCryptoAPI/generateKey/failures_AES-CTR.https.worker-expected.txt: >+ * web-platform-tests/WebCryptoAPI/generateKey/failures_AES-CTR.https.worker.js: Removed. >+ * web-platform-tests/WebCryptoAPI/generateKey/failures_AES-GCM.https.any-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-GCM.https.worker-expected.txt. >+ * web-platform-tests/WebCryptoAPI/generateKey/failures_AES-GCM.https.any.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_HMAC.https.worker.html. >+ * web-platform-tests/WebCryptoAPI/generateKey/failures_AES-GCM.https.any.js: Added. >+ * web-platform-tests/WebCryptoAPI/generateKey/failures_AES-GCM.https.any.worker-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-GCM.https.worker-expected.txt. >+ * web-platform-tests/WebCryptoAPI/generateKey/failures_AES-GCM.https.any.worker.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-OAEP.https.worker.html. >+ * web-platform-tests/WebCryptoAPI/generateKey/failures_AES-GCM.https.worker-expected.txt: >+ * web-platform-tests/WebCryptoAPI/generateKey/failures_AES-GCM.https.worker.js: Removed. >+ * web-platform-tests/WebCryptoAPI/generateKey/failures_AES-KW.https.any-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-KW.https.worker-expected.txt. >+ * web-platform-tests/WebCryptoAPI/generateKey/failures_AES-KW.https.any.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-PSS.https.worker.html. >+ * web-platform-tests/WebCryptoAPI/generateKey/failures_AES-KW.https.any.js: Added. >+ * web-platform-tests/WebCryptoAPI/generateKey/failures_AES-KW.https.any.worker-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-KW.https.worker-expected.txt. >+ * web-platform-tests/WebCryptoAPI/generateKey/failures_AES-KW.https.any.worker.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSASSA-PKCS1-v1_5.https.worker.html. >+ * web-platform-tests/WebCryptoAPI/generateKey/failures_AES-KW.https.worker-expected.txt: >+ * web-platform-tests/WebCryptoAPI/generateKey/failures_AES-KW.https.worker.js: Removed. >+ * web-platform-tests/WebCryptoAPI/generateKey/failures_ECDH.https.any-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_ECDH.https.worker-expected.txt. >+ * web-platform-tests/WebCryptoAPI/generateKey/failures_ECDH.https.any.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-CBC.https.worker.html. >+ * web-platform-tests/WebCryptoAPI/generateKey/failures_ECDH.https.any.js: Added. >+ * web-platform-tests/WebCryptoAPI/generateKey/failures_ECDH.https.any.worker-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_ECDH.https.worker-expected.txt. >+ * web-platform-tests/WebCryptoAPI/generateKey/failures_ECDH.https.any.worker.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-CTR.https.worker.html. >+ * web-platform-tests/WebCryptoAPI/generateKey/failures_ECDH.https.worker-expected.txt: >+ * web-platform-tests/WebCryptoAPI/generateKey/failures_ECDH.https.worker.js: Removed. >+ * web-platform-tests/WebCryptoAPI/generateKey/failures_ECDSA.https.any-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_ECDSA.https.worker-expected.txt. >+ * web-platform-tests/WebCryptoAPI/generateKey/failures_ECDSA.https.any.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-GCM.https.worker.html. >+ * web-platform-tests/WebCryptoAPI/generateKey/failures_ECDSA.https.any.js: Added. >+ * web-platform-tests/WebCryptoAPI/generateKey/failures_ECDSA.https.any.worker-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_ECDSA.https.worker-expected.txt. >+ * web-platform-tests/WebCryptoAPI/generateKey/failures_ECDSA.https.any.worker.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-KW.https.worker.html. >+ * web-platform-tests/WebCryptoAPI/generateKey/failures_ECDSA.https.worker-expected.txt: >+ * web-platform-tests/WebCryptoAPI/generateKey/failures_ECDSA.https.worker.js: Removed. >+ * web-platform-tests/WebCryptoAPI/generateKey/failures_HMAC.https.any-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_HMAC.https.worker-expected.txt. >+ * web-platform-tests/WebCryptoAPI/generateKey/failures_HMAC.https.any.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_ECDH.https.worker.html. >+ * web-platform-tests/WebCryptoAPI/generateKey/failures_HMAC.https.any.js: Added. >+ * web-platform-tests/WebCryptoAPI/generateKey/failures_HMAC.https.any.worker-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_HMAC.https.worker-expected.txt. >+ * web-platform-tests/WebCryptoAPI/generateKey/failures_HMAC.https.any.worker.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_ECDSA.https.worker.html. >+ * web-platform-tests/WebCryptoAPI/generateKey/failures_HMAC.https.worker-expected.txt: >+ * web-platform-tests/WebCryptoAPI/generateKey/failures_HMAC.https.worker.js: Removed. >+ * web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-OAEP.https.any-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-OAEP.https.worker-expected.txt. >+ * web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-OAEP.https.any.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_HMAC.https.worker.html. >+ * web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-OAEP.https.any.js: Added. >+ * web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-OAEP.https.any.worker-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-OAEP.https.worker-expected.txt. >+ * web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-OAEP.https.any.worker.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-OAEP.https.worker.html. >+ * web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-OAEP.https.worker-expected.txt: >+ * web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-OAEP.https.worker.js: Removed. >+ * web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-PSS.https.any-expected.txt: Copied from LayoutTests/platform/mac/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-PSS.https.worker-expected.txt. >+ * web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-PSS.https.any.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-PSS.https.worker.html. >+ * web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-PSS.https.any.js: Added. >+ * web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-PSS.https.any.worker-expected.txt: Copied from LayoutTests/platform/mac/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-PSS.https.worker-expected.txt. >+ * web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-PSS.https.any.worker.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSASSA-PKCS1-v1_5.https.worker.html. >+ * web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-PSS.https.worker.js: Removed. >+ * web-platform-tests/WebCryptoAPI/generateKey/failures_RSASSA-PKCS1-v1_5.https.any-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSASSA-PKCS1-v1_5.https.worker-expected.txt. >+ * web-platform-tests/WebCryptoAPI/generateKey/failures_RSASSA-PKCS1-v1_5.https.any.html: Copied from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-CBC.https.worker.html. >+ * web-platform-tests/WebCryptoAPI/generateKey/failures_RSASSA-PKCS1-v1_5.https.any.js: Added. >+ * web-platform-tests/WebCryptoAPI/generateKey/failures_RSASSA-PKCS1-v1_5.https.any.worker-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSASSA-PKCS1-v1_5.https.worker-expected.txt. >+ * web-platform-tests/WebCryptoAPI/generateKey/failures_RSASSA-PKCS1-v1_5.https.any.worker.html: Copied from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-CBC.https.worker.html. >+ * web-platform-tests/WebCryptoAPI/generateKey/failures_RSASSA-PKCS1-v1_5.https.worker-expected.txt: >+ * web-platform-tests/WebCryptoAPI/generateKey/failures_RSASSA-PKCS1-v1_5.https.worker.js: Removed. >+ * web-platform-tests/WebCryptoAPI/generateKey/successes.js: >+ (run_test): >+ * web-platform-tests/WebCryptoAPI/generateKey/successes_AES-CBC.https.any-expected.txt: Added. >+ * web-platform-tests/WebCryptoAPI/generateKey/successes_AES-CBC.https.any.html: Copied from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-CBC.https.worker.html. >+ * web-platform-tests/WebCryptoAPI/generateKey/successes_AES-CBC.https.any.js: Added. >+ * web-platform-tests/WebCryptoAPI/generateKey/successes_AES-CBC.https.any.worker-expected.txt: Added. >+ * web-platform-tests/WebCryptoAPI/generateKey/successes_AES-CBC.https.any.worker.html: Copied from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-CBC.https.worker.html. >+ * web-platform-tests/WebCryptoAPI/generateKey/successes_AES-CBC.https.worker-expected.txt: >+ * web-platform-tests/WebCryptoAPI/generateKey/successes_AES-CBC.https.worker.js: Removed. >+ * web-platform-tests/WebCryptoAPI/generateKey/successes_AES-CTR.https.any-expected.txt: Added. >+ * web-platform-tests/WebCryptoAPI/generateKey/successes_AES-CTR.https.any.html: Copied from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-CBC.https.worker.html. >+ * web-platform-tests/WebCryptoAPI/generateKey/successes_AES-CTR.https.any.js: Added. >+ * web-platform-tests/WebCryptoAPI/generateKey/successes_AES-CTR.https.any.worker-expected.txt: Added. >+ * web-platform-tests/WebCryptoAPI/generateKey/successes_AES-CTR.https.any.worker.html: Copied from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-CBC.https.worker.html. >+ * web-platform-tests/WebCryptoAPI/generateKey/successes_AES-CTR.https.worker-expected.txt: >+ * web-platform-tests/WebCryptoAPI/generateKey/successes_AES-CTR.https.worker.js: Removed. >+ * web-platform-tests/WebCryptoAPI/generateKey/successes_AES-GCM.https.any-expected.txt: Added. >+ * web-platform-tests/WebCryptoAPI/generateKey/successes_AES-GCM.https.any.html: Copied from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-CBC.https.worker.html. >+ * web-platform-tests/WebCryptoAPI/generateKey/successes_AES-GCM.https.any.js: Added. >+ * web-platform-tests/WebCryptoAPI/generateKey/successes_AES-GCM.https.any.worker-expected.txt: Added. >+ * web-platform-tests/WebCryptoAPI/generateKey/successes_AES-GCM.https.any.worker.html: Copied from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-CBC.https.worker.html. >+ * web-platform-tests/WebCryptoAPI/generateKey/successes_AES-GCM.https.worker-expected.txt: >+ * web-platform-tests/WebCryptoAPI/generateKey/successes_AES-GCM.https.worker.js: Removed. >+ * web-platform-tests/WebCryptoAPI/generateKey/successes_AES-KW.https.any-expected.txt: Added. >+ * web-platform-tests/WebCryptoAPI/generateKey/successes_AES-KW.https.any.html: Copied from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-CBC.https.worker.html. >+ * web-platform-tests/WebCryptoAPI/generateKey/successes_AES-KW.https.any.js: Added. >+ * web-platform-tests/WebCryptoAPI/generateKey/successes_AES-KW.https.any.worker-expected.txt: Added. >+ * web-platform-tests/WebCryptoAPI/generateKey/successes_AES-KW.https.any.worker.html: Copied from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-CBC.https.worker.html. >+ * web-platform-tests/WebCryptoAPI/generateKey/successes_AES-KW.https.worker-expected.txt: >+ * web-platform-tests/WebCryptoAPI/generateKey/successes_AES-KW.https.worker.js: Removed. >+ * web-platform-tests/WebCryptoAPI/generateKey/successes_ECDH.https.any-expected.txt: Added. >+ * web-platform-tests/WebCryptoAPI/generateKey/successes_ECDH.https.any.html: Copied from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-CBC.https.worker.html. >+ * web-platform-tests/WebCryptoAPI/generateKey/successes_ECDH.https.any.js: Added. >+ * web-platform-tests/WebCryptoAPI/generateKey/successes_ECDH.https.any.worker-expected.txt: Added. >+ * web-platform-tests/WebCryptoAPI/generateKey/successes_ECDH.https.any.worker.html: Copied from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-CBC.https.worker.html. >+ * web-platform-tests/WebCryptoAPI/generateKey/successes_ECDH.https.worker-expected.txt: >+ * web-platform-tests/WebCryptoAPI/generateKey/successes_ECDH.https.worker.js: Removed. >+ * web-platform-tests/WebCryptoAPI/generateKey/successes_ECDSA.https.any-expected.txt: Added. >+ * web-platform-tests/WebCryptoAPI/generateKey/successes_ECDSA.https.any.html: Copied from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-CBC.https.worker.html. >+ * web-platform-tests/WebCryptoAPI/generateKey/successes_ECDSA.https.any.js: Added. >+ * web-platform-tests/WebCryptoAPI/generateKey/successes_ECDSA.https.any.worker-expected.txt: Added. >+ * web-platform-tests/WebCryptoAPI/generateKey/successes_ECDSA.https.any.worker.html: Copied from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-CBC.https.worker.html. >+ * web-platform-tests/WebCryptoAPI/generateKey/successes_ECDSA.https.worker-expected.txt: >+ * web-platform-tests/WebCryptoAPI/generateKey/successes_ECDSA.https.worker.js: Removed. >+ * web-platform-tests/WebCryptoAPI/generateKey/successes_HMAC.https.any-expected.txt: Added. >+ * web-platform-tests/WebCryptoAPI/generateKey/successes_HMAC.https.any.html: Copied from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-CBC.https.worker.html. >+ * web-platform-tests/WebCryptoAPI/generateKey/successes_HMAC.https.any.js: Added. >+ * web-platform-tests/WebCryptoAPI/generateKey/successes_HMAC.https.any.worker-expected.txt: Added. >+ * web-platform-tests/WebCryptoAPI/generateKey/successes_HMAC.https.any.worker.html: Copied from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-CBC.https.worker.html. >+ * web-platform-tests/WebCryptoAPI/generateKey/successes_HMAC.https.worker-expected.txt: >+ * web-platform-tests/WebCryptoAPI/generateKey/successes_HMAC.https.worker.js: Removed. >+ * web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-OAEP.https.any-expected.txt: Added. >+ * web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-OAEP.https.any.html: Copied from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-CBC.https.worker.html. >+ * web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-OAEP.https.any.js: Added. >+ * web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-OAEP.https.any.worker-expected.txt: Added. >+ * web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-OAEP.https.any.worker.html: Copied from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-CBC.https.worker.html. >+ * web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-OAEP.https.worker.js: Removed. >+ * web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-PSS.https.any-expected.txt: Added. >+ * web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-PSS.https.any.html: Copied from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-CBC.https.worker.html. >+ * web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-PSS.https.any.js: Added. >+ * web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-PSS.https.any.worker-expected.txt: Added. >+ * web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-PSS.https.any.worker.html: Copied from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-CBC.https.worker.html. >+ * web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-PSS.https.worker.js: Removed. >+ * web-platform-tests/WebCryptoAPI/generateKey/successes_RSASSA-PKCS1-v1_5.https.any-expected.txt: Added. >+ * web-platform-tests/WebCryptoAPI/generateKey/successes_RSASSA-PKCS1-v1_5.https.any.html: Copied from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-CBC.https.worker.html. >+ * web-platform-tests/WebCryptoAPI/generateKey/successes_RSASSA-PKCS1-v1_5.https.any.js: Added. >+ * web-platform-tests/WebCryptoAPI/generateKey/successes_RSASSA-PKCS1-v1_5.https.any.worker-expected.txt: Added. >+ * web-platform-tests/WebCryptoAPI/generateKey/successes_RSASSA-PKCS1-v1_5.https.any.worker.html: Copied from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-CBC.https.worker.html. >+ * web-platform-tests/WebCryptoAPI/generateKey/successes_RSASSA-PKCS1-v1_5.https.worker-expected.txt: >+ * web-platform-tests/WebCryptoAPI/generateKey/successes_RSASSA-PKCS1-v1_5.https.worker.js: Removed. >+ * web-platform-tests/WebCryptoAPI/generateKey/test_aes-cbc.https-expected.txt: Removed. >+ * web-platform-tests/WebCryptoAPI/generateKey/test_aes-cbc.https.html: Removed. >+ * web-platform-tests/WebCryptoAPI/generateKey/test_aes-ctr-expected.txt: Removed. >+ * web-platform-tests/WebCryptoAPI/generateKey/test_aes-ctr.https-expected.txt: Removed. >+ * web-platform-tests/WebCryptoAPI/generateKey/test_aes-ctr.https.html: Removed. >+ * web-platform-tests/WebCryptoAPI/generateKey/test_failures_AES-CBC-expected.txt: Removed. >+ * web-platform-tests/WebCryptoAPI/generateKey/test_failures_AES-CBC.https-expected.txt: Removed. >+ * web-platform-tests/WebCryptoAPI/generateKey/test_failures_AES-CBC.https.html: Removed. >+ * web-platform-tests/WebCryptoAPI/generateKey/test_failures_AES-CTR-expected.txt: Removed. >+ * web-platform-tests/WebCryptoAPI/generateKey/test_failures_AES-CTR.https-expected.txt: Removed. >+ * web-platform-tests/WebCryptoAPI/generateKey/test_failures_AES-CTR.https.html: Removed. >+ * web-platform-tests/WebCryptoAPI/generateKey/test_failures_AES-GCM-expected.txt: Removed. >+ * web-platform-tests/WebCryptoAPI/generateKey/test_failures_AES-GCM.https-expected.txt: Removed. >+ * web-platform-tests/WebCryptoAPI/generateKey/test_failures_AES-GCM.https.html: Removed. >+ * web-platform-tests/WebCryptoAPI/generateKey/test_failures_AES-KW-expected.txt: Removed. >+ * web-platform-tests/WebCryptoAPI/generateKey/test_failures_AES-KW.https-expected.txt: Removed. >+ * web-platform-tests/WebCryptoAPI/generateKey/test_failures_AES-KW.https.html: Removed. >+ * web-platform-tests/WebCryptoAPI/generateKey/test_failures_ECDH.https-expected.txt: Removed. >+ * web-platform-tests/WebCryptoAPI/generateKey/test_failures_ECDH.https.html: Removed. >+ * web-platform-tests/WebCryptoAPI/generateKey/test_failures_ECDSA-expected.txt: Removed. >+ * web-platform-tests/WebCryptoAPI/generateKey/test_failures_ECDSA.https-expected.txt: Removed. >+ * web-platform-tests/WebCryptoAPI/generateKey/test_failures_ECDSA.https.html: Removed. >+ * web-platform-tests/WebCryptoAPI/generateKey/test_failures_HMAC-expected.txt: Removed. >+ * web-platform-tests/WebCryptoAPI/generateKey/test_failures_HMAC.https-expected.txt: Removed. >+ * web-platform-tests/WebCryptoAPI/generateKey/test_failures_HMAC.https.html: Removed. >+ * web-platform-tests/WebCryptoAPI/generateKey/test_failures_RSA-OAEP.https-expected.txt: Removed. >+ * web-platform-tests/WebCryptoAPI/generateKey/test_failures_RSA-OAEP.https.html: Removed. >+ * web-platform-tests/WebCryptoAPI/generateKey/test_failures_RSA-PSS.https-expected.txt: Removed. >+ * web-platform-tests/WebCryptoAPI/generateKey/test_failures_RSA-PSS.https.html: Removed. >+ * web-platform-tests/WebCryptoAPI/generateKey/test_failures_RSASSA-PKCS1-v1_5.https-expected.txt: Removed. >+ * web-platform-tests/WebCryptoAPI/generateKey/test_failures_RSASSA-PKCS1-v1_5.https.html: Removed. >+ * web-platform-tests/WebCryptoAPI/generateKey/test_successes_AES-CBC-expected.txt: Removed. >+ * web-platform-tests/WebCryptoAPI/generateKey/test_successes_AES-CBC.https-expected.txt: Removed. >+ * web-platform-tests/WebCryptoAPI/generateKey/test_successes_AES-CBC.https.html: Removed. >+ * web-platform-tests/WebCryptoAPI/generateKey/test_successes_AES-CTR-expected.txt: Removed. >+ * web-platform-tests/WebCryptoAPI/generateKey/test_successes_AES-CTR.https-expected.txt: Removed. >+ * web-platform-tests/WebCryptoAPI/generateKey/test_successes_AES-CTR.https.html: Removed. >+ * web-platform-tests/WebCryptoAPI/generateKey/test_successes_AES-GCM.https-expected.txt: Removed. >+ * web-platform-tests/WebCryptoAPI/generateKey/test_successes_AES-GCM.https.html: Removed. >+ * web-platform-tests/WebCryptoAPI/generateKey/test_successes_AES-KW.https-expected.txt: Removed. >+ * web-platform-tests/WebCryptoAPI/generateKey/test_successes_AES-KW.https.html: Removed. >+ * web-platform-tests/WebCryptoAPI/generateKey/test_successes_ECDH-expected.txt: Removed. >+ * web-platform-tests/WebCryptoAPI/generateKey/test_successes_ECDH.https-expected.txt: Removed. >+ * web-platform-tests/WebCryptoAPI/generateKey/test_successes_ECDH.https.html: Removed. >+ * web-platform-tests/WebCryptoAPI/generateKey/test_successes_ECDSA.https-expected.txt: Removed. >+ * web-platform-tests/WebCryptoAPI/generateKey/test_successes_ECDSA.https.html: Removed. >+ * web-platform-tests/WebCryptoAPI/generateKey/test_successes_HMAC.https-expected.txt: Removed. >+ * web-platform-tests/WebCryptoAPI/generateKey/test_successes_HMAC.https.html: Removed. >+ * web-platform-tests/WebCryptoAPI/generateKey/test_successes_RSA-OAEP.https-expected.txt: Removed. >+ * web-platform-tests/WebCryptoAPI/generateKey/test_successes_RSA-OAEP.https.html: Removed. >+ * web-platform-tests/WebCryptoAPI/generateKey/test_successes_RSA-PSS-expected.txt: Removed. >+ * web-platform-tests/WebCryptoAPI/generateKey/test_successes_RSA-PSS.https-expected.txt: Removed. >+ * web-platform-tests/WebCryptoAPI/generateKey/test_successes_RSA-PSS.https.html: Removed. >+ * web-platform-tests/WebCryptoAPI/generateKey/test_successes_RSASSA-PKCS1-v1_5.https-expected.txt: Removed. >+ * web-platform-tests/WebCryptoAPI/generateKey/test_successes_RSASSA-PKCS1-v1_5.https.html: Removed. >+ * web-platform-tests/WebCryptoAPI/generateKey/w3c-import.log: >+ * web-platform-tests/WebIDL/ecmascript-binding/default-iterator-object-expected.txt: Added. >+ * web-platform-tests/WebIDL/ecmascript-binding/default-iterator-object.html: Added. >+ * web-platform-tests/WebIDL/ecmascript-binding/iterator-prototype-object-expected.txt: Added. >+ * web-platform-tests/WebIDL/ecmascript-binding/iterator-prototype-object.html: Added. >+ * web-platform-tests/WebIDL/ecmascript-binding/no-regexp-special-casing.any-expected.txt: Added. >+ * web-platform-tests/WebIDL/ecmascript-binding/no-regexp-special-casing.any.html: Copied from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-CBC.https.worker.html. >+ * web-platform-tests/WebIDL/ecmascript-binding/no-regexp-special-casing.any.js: Added. >+ (test): >+ (test.regExp.Symbol.iterator): >+ (promise_test.async): >+ * web-platform-tests/WebIDL/ecmascript-binding/no-regexp-special-casing.any.worker-expected.txt: Added. >+ * web-platform-tests/WebIDL/ecmascript-binding/no-regexp-special-casing.any.worker.html: Copied from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-CBC.https.worker.html. >+ * web-platform-tests/WebIDL/ecmascript-binding/w3c-import.log: >+ * web-platform-tests/accname/OWNERS: Added. >+ * web-platform-tests/accname/foo.jpg: Added. >+ * web-platform-tests/accname/test.png: Added. >+ * web-platform-tests/accname/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/FileAPI/BlobURL/support/w3c-import.log. >+ * web-platform-tests/acid/OWNERS: Added. >+ * web-platform-tests/acid/README.md: Added. >+ * web-platform-tests/acid/acid2/404.html: Added. >+ * web-platform-tests/acid/acid2/reference.png: Added. >+ * web-platform-tests/acid/acid2/reftest-expected.html: Added. >+ * web-platform-tests/acid/acid2/reftest.html: Added. >+ * web-platform-tests/acid/acid2/test.html: Added. >+ * web-platform-tests/acid/acid2/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/FileAPI/BlobURL/support/w3c-import.log. >+ * web-platform-tests/acid/acid3/empty.css: Added. >+ (<!DOCTYPE HTML><html><head><title>FAIL</title><style>): >+ (h1): >+ * web-platform-tests/acid/acid3/empty.css.headers: Added. >+ * web-platform-tests/acid/acid3/empty.html: Added. >+ * web-platform-tests/acid/acid3/empty.png: Added. >+ * web-platform-tests/acid/acid3/empty.txt: Added. >+ * web-platform-tests/acid/acid3/empty.xml: Added. >+ * web-platform-tests/acid/acid3/empty.xml.headers: Added. >+ * web-platform-tests/acid/acid3/favicon.ico: Added. >+ * web-platform-tests/acid/acid3/favicon.ico.headers: Added. >+ * web-platform-tests/acid/acid3/numbered-tests-expected.txt: Added. >+ * web-platform-tests/acid/acid3/numbered-tests.html: Added. >+ * web-platform-tests/acid/acid3/reference.png: Added. >+ * web-platform-tests/acid/acid3/support-a.png: Added. >+ * web-platform-tests/acid/acid3/support-b.png: Added. >+ * web-platform-tests/acid/acid3/support-b.png.headers: Added. >+ * web-platform-tests/acid/acid3/svg.xml: Added. >+ * web-platform-tests/acid/acid3/svg.xml.headers: Added. >+ * web-platform-tests/acid/acid3/test-expected.html: Added. >+ * web-platform-tests/acid/acid3/test.html: Added. >+ * web-platform-tests/acid/acid3/w3c-import.log: Added. >+ * web-platform-tests/acid/acid3/xhtml.1: Added. >+ * web-platform-tests/acid/acid3/xhtml.1.headers: Added. >+ * web-platform-tests/acid/acid3/xhtml.2: Added. >+ * web-platform-tests/acid/acid3/xhtml.2.headers: Added. >+ * web-platform-tests/acid/acid3/xhtml.3: Added. >+ * web-platform-tests/acid/acid3/xhtml.3.headers: Added. >+ * web-platform-tests/acid/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/FileAPI/BlobURL/support/w3c-import.log. >+ * web-platform-tests/async-local-storage/OWNERS: Added. >+ * web-platform-tests/async-local-storage/storage-smoke-test.https.tentative-expected.txt: Added. >+ * web-platform-tests/async-local-storage/storage-smoke-test.https.tentative.html: Added. >+ * web-platform-tests/async-local-storage/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/FileAPI/BlobURL/support/w3c-import.log. >+ * web-platform-tests/background-fetch/interfaces.html: >+ * web-platform-tests/background-fetch/interfaces.worker.js: >+ (promise_test.async): >+ (promise_test): Deleted. >+ * web-platform-tests/beacon/OWNERS: Added. >+ * web-platform-tests/beacon/beacon-common.sub.js: >+ * web-platform-tests/beacon/beacon-cors.sub.window.js: >+ (runTests.self.buildId): >+ (runTests.self.buildBaseUrl): >+ (runTests.self.buildTargetUrl): >+ (runTests): >+ * web-platform-tests/beacon/beacon-error.window.js: >+ (promise_test.async): >+ * web-platform-tests/beacon/beacon-navigate-expected.txt: >+ * web-platform-tests/beacon/headers/header-content-type.html: >+ * web-platform-tests/beacon/resources/beacon.py: >+ (main): >+ * web-platform-tests/beacon/w3c-import.log: >+ * web-platform-tests/budget-api/OWNERS: Added. >+ * web-platform-tests/budget-api/interfaces.any-expected.txt: Added. >+ * web-platform-tests/budget-api/interfaces.any.html: Copied from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-CBC.https.worker.html. >+ * web-platform-tests/budget-api/interfaces.any.js: Added. >+ (promise_test.async): >+ * web-platform-tests/budget-api/interfaces.any.worker-expected.txt: Added. >+ * web-platform-tests/budget-api/interfaces.any.worker.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-CBC.https.worker.html. >+ * web-platform-tests/budget-api/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/FileAPI/BlobURL/support/w3c-import.log. >+ > 2018-06-05 Youenn Fablet <youenn@apple.com> > > ServiceWorker registration should store any script fetched through importScripts >diff --git a/LayoutTests/TestExpectations b/LayoutTests/TestExpectations >index 49d2ae1b4c9eb8bf1c2686c751270600ffc33a90..9568999f8d5b9ae8511174a3cbb119be3094d53c 100644 >--- a/LayoutTests/TestExpectations >+++ b/LayoutTests/TestExpectations >@@ -1423,14 +1423,10 @@ workers/wasm-long-compile.html [ Slow ] > # Flaky WebCrypto API tests > imported/w3c/web-platform-tests/WebCryptoAPI/wrapKey_unwrapKey/test_wrapKey_unwrapKey.https.html [ Pass Failure ] > imported/w3c/web-platform-tests/WebCryptoAPI/derive_bits_keys/pbkdf2.https.worker.html [ Pass Failure Slow ] >-imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_RSA-OAEP.https.html [ Pass Failure ] > > # WebCryptoAPI tests that take too long to complete >-imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-OAEP.https.worker.html [ Skip ] >-imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSASSA-PKCS1-v1_5.https.worker.html [ Slow ] > imported/w3c/web-platform-tests/WebCryptoAPI/import_export/rsa_importKey.https.worker.html [ Slow ] > imported/w3c/web-platform-tests/WebCryptoAPI/import_export/test_rsa_importKey.https.html [ Slow ] >-imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-PSS.https.worker.html [ Slow ] > > # Imported Beacon test that is flaky because its last check is very slow. > webkit.org/b/175202 imported/w3c/web-platform-tests/beacon/beacon-basic-string.html [ Pass Failure ] >@@ -2012,3 +2008,6 @@ webkit.org/b/184800 http/tests/workers/worker-importScripts-banned-mimetype.html > webkit.org/b/184802 http/tests/security/contentTypeOptions/nosniff-importScript-blocked.html [ Pass Timeout ] > > webkit.org/b/181100 inspector/worker/worker-recover-if-inspector-close.html [ Pass Failure ] >+ >+imported/w3c/web-platform-tests/acid/acid3/test.html [ ImageOnlyFailure ] >+imported/w3c/web-platform-tests/acid/acid2/reftest.html [ ImageOnlyFailure ] >diff --git a/LayoutTests/imported/w3c/resources/resource-files.json b/LayoutTests/imported/w3c/resources/resource-files.json >index 3c4f1ac2f5b42d97a18757ccb3b43a22e7c77998..ce605d91b2dcdd640c4558d36aaeb0c46de3701b 100644 >--- a/LayoutTests/imported/w3c/resources/resource-files.json >+++ b/LayoutTests/imported/w3c/resources/resource-files.json >@@ -22,18 +22,138 @@ > "web-platform-tests/FileAPI/support/url-origin.html", > "web-platform-tests/XMLHttpRequest/xmlhttprequest-sync-block-defer-scripts-subframe.html", > "web-platform-tests/XMLHttpRequest/xmlhttprequest-sync-not-hang-scriptloader-subframe.html", >+ "web-platform-tests/acid/acid2/404.html", >+ "web-platform-tests/acid/acid2/test.html", >+ "web-platform-tests/acid/acid3/empty.html", >+ "web-platform-tests/acid/acid3/empty.xml", >+ "web-platform-tests/acid/acid3/svg.xml", > "web-platform-tests/beacon/fetch-keepalive-navigate.iFrame.html", > "web-platform-tests/beacon/navigate.iFrame.sub.html", >+ "web-platform-tests/credential-management/support/echoing-nester.html", >+ "web-platform-tests/credential-management/support/federatedcredential-get.html", >+ "web-platform-tests/credential-management/support/passwordcredential-get.html", > "web-platform-tests/css/WOFF2/available-001.xht", >+ "web-platform-tests/css/WOFF2/available-002.xht", > "web-platform-tests/css/WOFF2/support/available-001a.xht", > "web-platform-tests/css/WOFF2/support/available-001b.xht", > "web-platform-tests/css/WOFF2/testcaseindex.xht", >+ "web-platform-tests/css/css-color/t32-opacity-basic-0.6-a.xht", >+ "web-platform-tests/css/css-color/t32-opacity-zorder-c.xht", >+ "web-platform-tests/css/css-color/t421-rgb-hex3-expand-b.xht", >+ "web-platform-tests/css/css-color/t422-rgba-a0.6-a.xht", >+ "web-platform-tests/css/css-color/t425-hsla-basic-a.xht", >+ "web-platform-tests/css/css-display/run-in/after-content-display-004.xht", >+ "web-platform-tests/css/css-display/run-in/anonymous-box-generation-002.xht", >+ "web-platform-tests/css/css-display/run-in/background-applies-to-011.xht", >+ "web-platform-tests/css/css-display/run-in/background-attachment-applies-to-011.xht", >+ "web-platform-tests/css/css-display/run-in/background-color-applies-to-011.xht", >+ "web-platform-tests/css/css-display/run-in/background-image-applies-to-011.xht", >+ "web-platform-tests/css/css-display/run-in/background-position-applies-to-011.xht", >+ "web-platform-tests/css/css-display/run-in/background-repeat-applies-to-011.xht", >+ "web-platform-tests/css/css-display/run-in/before-content-display-004.xht", >+ "web-platform-tests/css/css-display/run-in/border-applies-to-011.xht", >+ "web-platform-tests/css/css-display/run-in/border-bottom-applies-to-011.xht", >+ "web-platform-tests/css/css-display/run-in/border-bottom-color-applies-to-011.xht", >+ "web-platform-tests/css/css-display/run-in/border-bottom-style-applies-to-011.xht", >+ "web-platform-tests/css/css-display/run-in/border-bottom-width-applies-to-011.xht", >+ "web-platform-tests/css/css-display/run-in/border-collapse-applies-to-004.xht", >+ "web-platform-tests/css/css-display/run-in/border-color-applies-to-011.xht", >+ "web-platform-tests/css/css-display/run-in/border-left-applies-to-011.xht", >+ "web-platform-tests/css/css-display/run-in/border-left-color-applies-to-011.xht", >+ "web-platform-tests/css/css-display/run-in/border-left-style-applies-to-011.xht", >+ "web-platform-tests/css/css-display/run-in/border-left-width-applies-to-011.xht", >+ "web-platform-tests/css/css-display/run-in/border-right-applies-to-011.xht", >+ "web-platform-tests/css/css-display/run-in/border-right-color-applies-to-011.xht", >+ "web-platform-tests/css/css-display/run-in/border-right-style-applies-to-011.xht", >+ "web-platform-tests/css/css-display/run-in/border-right-width-applies-to-011.xht", >+ "web-platform-tests/css/css-display/run-in/border-spacing-applies-to-004.xht", >+ "web-platform-tests/css/css-display/run-in/border-style-applies-to-011.xht", >+ "web-platform-tests/css/css-display/run-in/border-top-applies-to-011.xht", >+ "web-platform-tests/css/css-display/run-in/border-top-color-applies-to-011.xht", >+ "web-platform-tests/css/css-display/run-in/border-top-style-applies-to-011.xht", >+ "web-platform-tests/css/css-display/run-in/border-top-width-applies-to-011.xht", >+ "web-platform-tests/css/css-display/run-in/border-width-applies-to-011.xht", >+ "web-platform-tests/css/css-display/run-in/bottom-applies-to-011.xht", >+ "web-platform-tests/css/css-display/run-in/caption-side-applies-to-004.xht", >+ "web-platform-tests/css/css-display/run-in/clear-applies-to-011.xht", >+ "web-platform-tests/css/css-display/run-in/clear-runin-001.xht", >+ "web-platform-tests/css/css-display/run-in/color-applies-to-011.xht", >+ "web-platform-tests/css/css-display/run-in/direction-applies-to-011.xht", >+ "web-platform-tests/css/css-display/run-in/display-004.xht", >+ "web-platform-tests/css/css-display/run-in/empty-cells-applies-to-004.xht", >+ "web-platform-tests/css/css-display/run-in/first-line-pseudo-009.xht", >+ "web-platform-tests/css/css-display/run-in/float-applies-to-011.xht", >+ "web-platform-tests/css/css-display/run-in/font-applies-to-004.xht", >+ "web-platform-tests/css/css-display/run-in/font-family-applies-to-004.xht", >+ "web-platform-tests/css/css-display/run-in/font-size-applies-to-004.xht", >+ "web-platform-tests/css/css-display/run-in/left-applies-to-011.xht", >+ "web-platform-tests/css/css-display/run-in/line-height-applies-to-011.xht", >+ "web-platform-tests/css/css-display/run-in/list-style-image-applies-to-011.xht", >+ "web-platform-tests/css/css-display/run-in/list-style-position-applies-to-011.xht", >+ "web-platform-tests/css/css-display/run-in/margin-applies-to-011.xht", >+ "web-platform-tests/css/css-display/run-in/margin-bottom-applies-to-011.xht", >+ "web-platform-tests/css/css-display/run-in/margin-left-applies-to-011.xht", >+ "web-platform-tests/css/css-display/run-in/margin-right-applies-to-011.xht", >+ "web-platform-tests/css/css-display/run-in/margin-top-applies-to-011.xht", >+ "web-platform-tests/css/css-display/run-in/outline-applies-to-011.xht", >+ "web-platform-tests/css/css-display/run-in/outline-color-applies-to-011.xht", >+ "web-platform-tests/css/css-display/run-in/outline-style-applies-to-011.xht", >+ "web-platform-tests/css/css-display/run-in/outline-width-applies-to-011.xht", >+ "web-platform-tests/css/css-display/run-in/overflow-applies-to-011.xht", >+ "web-platform-tests/css/css-display/run-in/padding-applies-to-011.xht", >+ "web-platform-tests/css/css-display/run-in/padding-bottom-applies-to-011.xht", >+ "web-platform-tests/css/css-display/run-in/padding-left-applies-to-011.xht", >+ "web-platform-tests/css/css-display/run-in/padding-right-applies-to-011.xht", >+ "web-platform-tests/css/css-display/run-in/padding-top-applies-to-011.xht", >+ "web-platform-tests/css/css-display/run-in/position-applies-to-011.xht", >+ "web-platform-tests/css/css-display/run-in/right-applies-to-011.xht", >+ "web-platform-tests/css/css-display/run-in/run-in-001.xht", >+ "web-platform-tests/css/css-display/run-in/run-in-002.xht", >+ "web-platform-tests/css/css-display/run-in/run-in-003.xht", >+ "web-platform-tests/css/css-display/run-in/run-in-004.xht", >+ "web-platform-tests/css/css-display/run-in/run-in-005.xht", >+ "web-platform-tests/css/css-display/run-in/run-in-006.xht", >+ "web-platform-tests/css/css-display/run-in/run-in-007.xht", >+ "web-platform-tests/css/css-display/run-in/run-in-008.xht", >+ "web-platform-tests/css/css-display/run-in/run-in-009.xht", >+ "web-platform-tests/css/css-display/run-in/run-in-010.xht", >+ "web-platform-tests/css/css-display/run-in/run-in-011.xht", >+ "web-platform-tests/css/css-display/run-in/run-in-012.xht", >+ "web-platform-tests/css/css-display/run-in/run-in-013.xht", >+ "web-platform-tests/css/css-display/run-in/run-in-inheritance-001.xht", >+ "web-platform-tests/css/css-display/run-in/run-in-linebox-001.xht", >+ "web-platform-tests/css/css-display/run-in/run-in-linebox-002.xht", >+ "web-platform-tests/css/css-display/run-in/table-anonymous-block-001.xht", >+ "web-platform-tests/css/css-display/run-in/table-layout-applies-to-004.xht", >+ "web-platform-tests/css/css-display/run-in/text-align-applies-to-004.xht", >+ "web-platform-tests/css/css-display/run-in/text-indent-applies-to-004.xht", >+ "web-platform-tests/css/css-display/run-in/top-applies-to-011.xht", >+ "web-platform-tests/css/css-display/run-in/unicode-bidi-applies-to-011.xht", >+ "web-platform-tests/css/css-display/run-in/vertical-align-applies-to-011.xht", >+ "web-platform-tests/css/css-display/run-in/visibility-applies-to-011.xht", >+ "web-platform-tests/css/css-display/run-in/white-space-applies-to-004.xht", >+ "web-platform-tests/css/css-display/run-in/word-spacing-applies-to-004.xht", >+ "web-platform-tests/css/css-display/run-in/z-index-applies-to-011.xht", > "web-platform-tests/css/css-grid-1/grid-items/ref-filled-green-100px-square-image.html", > "web-platform-tests/css/css-grid-1/test-plan/index.html", > "web-platform-tests/css/css-grid/grid-items/ref-filled-green-100px-square-image.html", > "web-platform-tests/css/css-grid/test-plan/index.html", > "web-platform-tests/css/css-multicol/multicol-rule-large-002.xht", >+ "web-platform-tests/css/css-pseudo/placeholder-input-number-notref.html", > "web-platform-tests/css/css-shapes/test-plan/index.html", >+ "web-platform-tests/css/css-text-decor/text-decoration-visibility-001.xht", >+ "web-platform-tests/css/css-text-decor/text-decoration-visibility-002.xht", >+ "web-platform-tests/css/css-text-decor/text-decoration-visibility-003.xht", >+ "web-platform-tests/css/css-text-decor/text-decoration-visibility-004.xht", >+ "web-platform-tests/css/css-text-decor/text-decoration-visibility-005.xht", >+ "web-platform-tests/css/css-text-decor/text-decoration-visibility-006.xht", >+ "web-platform-tests/css/css-text-decor/text-decoration-visibility-007.xht", >+ "web-platform-tests/css/css-text-decor/text-decoration-visibility-008.xht", >+ "web-platform-tests/css/css-text-decor/text-decoration-visibility-009.xht", >+ "web-platform-tests/css/css-text-decor/text-decoration-visibility-010.xht", >+ "web-platform-tests/css/css-text-decor/text-decoration-visibility-011.xht", >+ "web-platform-tests/css/css-text-decor/text-decoration-visibility-012.xht", >+ "web-platform-tests/css/css-text-decor/text-emphasis-style-016.html", > "web-platform-tests/css/css-text/text-align/text-align-end-018.html", > "web-platform-tests/css/css-text/text-align/text-align-end-019.html", > "web-platform-tests/css/css-text/text-align/text-align-end-020.html", >@@ -310,9 +430,311 @@ > "web-platform-tests/css/css-ui/support/nav-up-013-frame.html", > "web-platform-tests/css/css-ui/text-overflow-018.html", > "web-platform-tests/css/css-ui/text-overflow-019.html", >+ "web-platform-tests/css/cssom-view/iframe.html", > "web-platform-tests/css/cssom/support/xmlss-pi.xhtml", >+ "web-platform-tests/css/mediaqueries/media-queries-001.xht", >+ "web-platform-tests/css/mediaqueries/media-queries-002.xht", >+ "web-platform-tests/css/mediaqueries/media-queries-003.xht", > "web-platform-tests/css/mediaqueries/support/media_queries_iframe.html", > "web-platform-tests/css/mediaqueries/support/min-width-tables-001-iframe.html", >+ "web-platform-tests/css/selectors/css3-modsel-1.xml", >+ "web-platform-tests/css/selectors/css3-modsel-10.xml", >+ "web-platform-tests/css/selectors/css3-modsel-100.xml", >+ "web-platform-tests/css/selectors/css3-modsel-100b.xml", >+ "web-platform-tests/css/selectors/css3-modsel-101.xml", >+ "web-platform-tests/css/selectors/css3-modsel-101b.xml", >+ "web-platform-tests/css/selectors/css3-modsel-102.xml", >+ "web-platform-tests/css/selectors/css3-modsel-102b.xml", >+ "web-platform-tests/css/selectors/css3-modsel-103.xml", >+ "web-platform-tests/css/selectors/css3-modsel-103b.xml", >+ "web-platform-tests/css/selectors/css3-modsel-104.xml", >+ "web-platform-tests/css/selectors/css3-modsel-104b.xml", >+ "web-platform-tests/css/selectors/css3-modsel-105.xml", >+ "web-platform-tests/css/selectors/css3-modsel-105b.xml", >+ "web-platform-tests/css/selectors/css3-modsel-106.xml", >+ "web-platform-tests/css/selectors/css3-modsel-106b.xml", >+ "web-platform-tests/css/selectors/css3-modsel-107.xml", >+ "web-platform-tests/css/selectors/css3-modsel-107b.xml", >+ "web-platform-tests/css/selectors/css3-modsel-108.xml", >+ "web-platform-tests/css/selectors/css3-modsel-108b.xml", >+ "web-platform-tests/css/selectors/css3-modsel-109.xml", >+ "web-platform-tests/css/selectors/css3-modsel-109b.xml", >+ "web-platform-tests/css/selectors/css3-modsel-11.xml", >+ "web-platform-tests/css/selectors/css3-modsel-110.xml", >+ "web-platform-tests/css/selectors/css3-modsel-110b.xml", >+ "web-platform-tests/css/selectors/css3-modsel-111.xml", >+ "web-platform-tests/css/selectors/css3-modsel-111b.xml", >+ "web-platform-tests/css/selectors/css3-modsel-112.xml", >+ "web-platform-tests/css/selectors/css3-modsel-112b.xml", >+ "web-platform-tests/css/selectors/css3-modsel-113.xml", >+ "web-platform-tests/css/selectors/css3-modsel-113b.xml", >+ "web-platform-tests/css/selectors/css3-modsel-114.xml", >+ "web-platform-tests/css/selectors/css3-modsel-114b.xml", >+ "web-platform-tests/css/selectors/css3-modsel-115.xml", >+ "web-platform-tests/css/selectors/css3-modsel-115b.xml", >+ "web-platform-tests/css/selectors/css3-modsel-116.xml", >+ "web-platform-tests/css/selectors/css3-modsel-116b.xml", >+ "web-platform-tests/css/selectors/css3-modsel-117.xml", >+ "web-platform-tests/css/selectors/css3-modsel-117b.xml", >+ "web-platform-tests/css/selectors/css3-modsel-118.xml", >+ "web-platform-tests/css/selectors/css3-modsel-119.xml", >+ "web-platform-tests/css/selectors/css3-modsel-120.xml", >+ "web-platform-tests/css/selectors/css3-modsel-121.xml", >+ "web-platform-tests/css/selectors/css3-modsel-122.xml", >+ "web-platform-tests/css/selectors/css3-modsel-123.xml", >+ "web-platform-tests/css/selectors/css3-modsel-123b.xml", >+ "web-platform-tests/css/selectors/css3-modsel-124.xml", >+ "web-platform-tests/css/selectors/css3-modsel-124b.xml", >+ "web-platform-tests/css/selectors/css3-modsel-125.xml", >+ "web-platform-tests/css/selectors/css3-modsel-125b.xml", >+ "web-platform-tests/css/selectors/css3-modsel-126.xml", >+ "web-platform-tests/css/selectors/css3-modsel-126b.xml", >+ "web-platform-tests/css/selectors/css3-modsel-127.xml", >+ "web-platform-tests/css/selectors/css3-modsel-127b.xml", >+ "web-platform-tests/css/selectors/css3-modsel-128.xml", >+ "web-platform-tests/css/selectors/css3-modsel-128b.xml", >+ "web-platform-tests/css/selectors/css3-modsel-129.xml", >+ "web-platform-tests/css/selectors/css3-modsel-129b.xml", >+ "web-platform-tests/css/selectors/css3-modsel-13.xml", >+ "web-platform-tests/css/selectors/css3-modsel-130.xml", >+ "web-platform-tests/css/selectors/css3-modsel-130b.xml", >+ "web-platform-tests/css/selectors/css3-modsel-131.xml", >+ "web-platform-tests/css/selectors/css3-modsel-131b.xml", >+ "web-platform-tests/css/selectors/css3-modsel-132.xml", >+ "web-platform-tests/css/selectors/css3-modsel-132b.xml", >+ "web-platform-tests/css/selectors/css3-modsel-133.xml", >+ "web-platform-tests/css/selectors/css3-modsel-133b.xml", >+ "web-platform-tests/css/selectors/css3-modsel-134.xml", >+ "web-platform-tests/css/selectors/css3-modsel-134b.xml", >+ "web-platform-tests/css/selectors/css3-modsel-135.xml", >+ "web-platform-tests/css/selectors/css3-modsel-135b.xml", >+ "web-platform-tests/css/selectors/css3-modsel-136.xml", >+ "web-platform-tests/css/selectors/css3-modsel-136b.xml", >+ "web-platform-tests/css/selectors/css3-modsel-137.xml", >+ "web-platform-tests/css/selectors/css3-modsel-137b.xml", >+ "web-platform-tests/css/selectors/css3-modsel-138.xml", >+ "web-platform-tests/css/selectors/css3-modsel-138b.xml", >+ "web-platform-tests/css/selectors/css3-modsel-139.xml", >+ "web-platform-tests/css/selectors/css3-modsel-139b.xml", >+ "web-platform-tests/css/selectors/css3-modsel-14.xml", >+ "web-platform-tests/css/selectors/css3-modsel-140.xml", >+ "web-platform-tests/css/selectors/css3-modsel-140b.xml", >+ "web-platform-tests/css/selectors/css3-modsel-141.xml", >+ "web-platform-tests/css/selectors/css3-modsel-141b.xml", >+ "web-platform-tests/css/selectors/css3-modsel-142.xml", >+ "web-platform-tests/css/selectors/css3-modsel-142b.xml", >+ "web-platform-tests/css/selectors/css3-modsel-143.xml", >+ "web-platform-tests/css/selectors/css3-modsel-143b.xml", >+ "web-platform-tests/css/selectors/css3-modsel-144.xml", >+ "web-platform-tests/css/selectors/css3-modsel-145a.xml", >+ "web-platform-tests/css/selectors/css3-modsel-145b.xml", >+ "web-platform-tests/css/selectors/css3-modsel-146a.xml", >+ "web-platform-tests/css/selectors/css3-modsel-146b.xml", >+ "web-platform-tests/css/selectors/css3-modsel-147a.xml", >+ "web-platform-tests/css/selectors/css3-modsel-147b.xml", >+ "web-platform-tests/css/selectors/css3-modsel-148.xml", >+ "web-platform-tests/css/selectors/css3-modsel-149.xml", >+ "web-platform-tests/css/selectors/css3-modsel-149b.xml", >+ "web-platform-tests/css/selectors/css3-modsel-14b.xml", >+ "web-platform-tests/css/selectors/css3-modsel-14c.xml", >+ "web-platform-tests/css/selectors/css3-modsel-14d.xml", >+ "web-platform-tests/css/selectors/css3-modsel-14e.xml", >+ "web-platform-tests/css/selectors/css3-modsel-15.xml", >+ "web-platform-tests/css/selectors/css3-modsel-150.xml", >+ "web-platform-tests/css/selectors/css3-modsel-151.xml", >+ "web-platform-tests/css/selectors/css3-modsel-152.xml", >+ "web-platform-tests/css/selectors/css3-modsel-153.xml", >+ "web-platform-tests/css/selectors/css3-modsel-154.xml", >+ "web-platform-tests/css/selectors/css3-modsel-155.xml", >+ "web-platform-tests/css/selectors/css3-modsel-155a.xml", >+ "web-platform-tests/css/selectors/css3-modsel-155b.xml", >+ "web-platform-tests/css/selectors/css3-modsel-155c.xml", >+ "web-platform-tests/css/selectors/css3-modsel-155d.xml", >+ "web-platform-tests/css/selectors/css3-modsel-156.xml", >+ "web-platform-tests/css/selectors/css3-modsel-156b.xml", >+ "web-platform-tests/css/selectors/css3-modsel-156c.xml", >+ "web-platform-tests/css/selectors/css3-modsel-157.xml", >+ "web-platform-tests/css/selectors/css3-modsel-158.xml", >+ "web-platform-tests/css/selectors/css3-modsel-159.xml", >+ "web-platform-tests/css/selectors/css3-modsel-15b.xml", >+ "web-platform-tests/css/selectors/css3-modsel-15c.xml", >+ "web-platform-tests/css/selectors/css3-modsel-16.xml", >+ "web-platform-tests/css/selectors/css3-modsel-160.xml", >+ "web-platform-tests/css/selectors/css3-modsel-161.xml", >+ "web-platform-tests/css/selectors/css3-modsel-166.xml", >+ "web-platform-tests/css/selectors/css3-modsel-166a.xml", >+ "web-platform-tests/css/selectors/css3-modsel-167.xml", >+ "web-platform-tests/css/selectors/css3-modsel-167a.xml", >+ "web-platform-tests/css/selectors/css3-modsel-168.xml", >+ "web-platform-tests/css/selectors/css3-modsel-168a.xml", >+ "web-platform-tests/css/selectors/css3-modsel-169.xml", >+ "web-platform-tests/css/selectors/css3-modsel-169a.xml", >+ "web-platform-tests/css/selectors/css3-modsel-17.xml", >+ "web-platform-tests/css/selectors/css3-modsel-170.xml", >+ "web-platform-tests/css/selectors/css3-modsel-170a.xml", >+ "web-platform-tests/css/selectors/css3-modsel-170b.xml", >+ "web-platform-tests/css/selectors/css3-modsel-170c.xml", >+ "web-platform-tests/css/selectors/css3-modsel-170d.xml", >+ "web-platform-tests/css/selectors/css3-modsel-171.xml", >+ "web-platform-tests/css/selectors/css3-modsel-172a.xml", >+ "web-platform-tests/css/selectors/css3-modsel-172b.xml", >+ "web-platform-tests/css/selectors/css3-modsel-173a.xml", >+ "web-platform-tests/css/selectors/css3-modsel-173b.xml", >+ "web-platform-tests/css/selectors/css3-modsel-174a.xml", >+ "web-platform-tests/css/selectors/css3-modsel-174b.xml", >+ "web-platform-tests/css/selectors/css3-modsel-175a.xml", >+ "web-platform-tests/css/selectors/css3-modsel-175b.xml", >+ "web-platform-tests/css/selectors/css3-modsel-175c.xml", >+ "web-platform-tests/css/selectors/css3-modsel-176.xml", >+ "web-platform-tests/css/selectors/css3-modsel-177a.xml", >+ "web-platform-tests/css/selectors/css3-modsel-177b.xml", >+ "web-platform-tests/css/selectors/css3-modsel-178.xml", >+ "web-platform-tests/css/selectors/css3-modsel-179.xml", >+ "web-platform-tests/css/selectors/css3-modsel-179a.xml", >+ "web-platform-tests/css/selectors/css3-modsel-18.xml", >+ "web-platform-tests/css/selectors/css3-modsel-180a.xml", >+ "web-platform-tests/css/selectors/css3-modsel-181.xml", >+ "web-platform-tests/css/selectors/css3-modsel-182.xml", >+ "web-platform-tests/css/selectors/css3-modsel-183.xml", >+ "web-platform-tests/css/selectors/css3-modsel-184a.xml", >+ "web-platform-tests/css/selectors/css3-modsel-184b.xml", >+ "web-platform-tests/css/selectors/css3-modsel-184c.xml", >+ "web-platform-tests/css/selectors/css3-modsel-184d.xml", >+ "web-platform-tests/css/selectors/css3-modsel-184e.xml", >+ "web-platform-tests/css/selectors/css3-modsel-184f.xml", >+ "web-platform-tests/css/selectors/css3-modsel-18a.xml", >+ "web-platform-tests/css/selectors/css3-modsel-18b.xml", >+ "web-platform-tests/css/selectors/css3-modsel-18c.xml", >+ "web-platform-tests/css/selectors/css3-modsel-19.xml", >+ "web-platform-tests/css/selectors/css3-modsel-19b.xml", >+ "web-platform-tests/css/selectors/css3-modsel-2.xml", >+ "web-platform-tests/css/selectors/css3-modsel-20.xml", >+ "web-platform-tests/css/selectors/css3-modsel-21.xml", >+ "web-platform-tests/css/selectors/css3-modsel-21b.xml", >+ "web-platform-tests/css/selectors/css3-modsel-21c.xml", >+ "web-platform-tests/css/selectors/css3-modsel-22.xml", >+ "web-platform-tests/css/selectors/css3-modsel-23.xml", >+ "web-platform-tests/css/selectors/css3-modsel-24.xml", >+ "web-platform-tests/css/selectors/css3-modsel-25.xml", >+ "web-platform-tests/css/selectors/css3-modsel-27.xml", >+ "web-platform-tests/css/selectors/css3-modsel-27a.xml", >+ "web-platform-tests/css/selectors/css3-modsel-27b.xml", >+ "web-platform-tests/css/selectors/css3-modsel-28.xml", >+ "web-platform-tests/css/selectors/css3-modsel-28b.xml", >+ "web-platform-tests/css/selectors/css3-modsel-29.xml", >+ "web-platform-tests/css/selectors/css3-modsel-29b.xml", >+ "web-platform-tests/css/selectors/css3-modsel-3.xml", >+ "web-platform-tests/css/selectors/css3-modsel-30.xml", >+ "web-platform-tests/css/selectors/css3-modsel-31.xml", >+ "web-platform-tests/css/selectors/css3-modsel-32.xml", >+ "web-platform-tests/css/selectors/css3-modsel-33.xml", >+ "web-platform-tests/css/selectors/css3-modsel-34.xml", >+ "web-platform-tests/css/selectors/css3-modsel-35.xml", >+ "web-platform-tests/css/selectors/css3-modsel-36.xml", >+ "web-platform-tests/css/selectors/css3-modsel-37.xml", >+ "web-platform-tests/css/selectors/css3-modsel-38.xml", >+ "web-platform-tests/css/selectors/css3-modsel-39.xml", >+ "web-platform-tests/css/selectors/css3-modsel-39a.xml", >+ "web-platform-tests/css/selectors/css3-modsel-39b.xml", >+ "web-platform-tests/css/selectors/css3-modsel-39c.xml", >+ "web-platform-tests/css/selectors/css3-modsel-3a.xml", >+ "web-platform-tests/css/selectors/css3-modsel-4.xml", >+ "web-platform-tests/css/selectors/css3-modsel-41.xml", >+ "web-platform-tests/css/selectors/css3-modsel-41a.xml", >+ "web-platform-tests/css/selectors/css3-modsel-42.xml", >+ "web-platform-tests/css/selectors/css3-modsel-42a.xml", >+ "web-platform-tests/css/selectors/css3-modsel-43.xml", >+ "web-platform-tests/css/selectors/css3-modsel-43b.xml", >+ "web-platform-tests/css/selectors/css3-modsel-44.xml", >+ "web-platform-tests/css/selectors/css3-modsel-44b.xml", >+ "web-platform-tests/css/selectors/css3-modsel-44c.xml", >+ "web-platform-tests/css/selectors/css3-modsel-44d.xml", >+ "web-platform-tests/css/selectors/css3-modsel-45.xml", >+ "web-platform-tests/css/selectors/css3-modsel-45b.xml", >+ "web-platform-tests/css/selectors/css3-modsel-45c.xml", >+ "web-platform-tests/css/selectors/css3-modsel-46.xml", >+ "web-platform-tests/css/selectors/css3-modsel-46b.xml", >+ "web-platform-tests/css/selectors/css3-modsel-47.xml", >+ "web-platform-tests/css/selectors/css3-modsel-48.xml", >+ "web-platform-tests/css/selectors/css3-modsel-49.xml", >+ "web-platform-tests/css/selectors/css3-modsel-5.xml", >+ "web-platform-tests/css/selectors/css3-modsel-50.xml", >+ "web-platform-tests/css/selectors/css3-modsel-51.xml", >+ "web-platform-tests/css/selectors/css3-modsel-52.xml", >+ "web-platform-tests/css/selectors/css3-modsel-53.xml", >+ "web-platform-tests/css/selectors/css3-modsel-54.xml", >+ "web-platform-tests/css/selectors/css3-modsel-55.xml", >+ "web-platform-tests/css/selectors/css3-modsel-56.xml", >+ "web-platform-tests/css/selectors/css3-modsel-57.xml", >+ "web-platform-tests/css/selectors/css3-modsel-57b.xml", >+ "web-platform-tests/css/selectors/css3-modsel-59.xml", >+ "web-platform-tests/css/selectors/css3-modsel-6.xml", >+ "web-platform-tests/css/selectors/css3-modsel-60.xml", >+ "web-platform-tests/css/selectors/css3-modsel-61.xml", >+ "web-platform-tests/css/selectors/css3-modsel-62.xml", >+ "web-platform-tests/css/selectors/css3-modsel-63.xml", >+ "web-platform-tests/css/selectors/css3-modsel-64.xml", >+ "web-platform-tests/css/selectors/css3-modsel-65.xml", >+ "web-platform-tests/css/selectors/css3-modsel-66.xml", >+ "web-platform-tests/css/selectors/css3-modsel-66b.xml", >+ "web-platform-tests/css/selectors/css3-modsel-67.xml", >+ "web-platform-tests/css/selectors/css3-modsel-68.xml", >+ "web-platform-tests/css/selectors/css3-modsel-69.xml", >+ "web-platform-tests/css/selectors/css3-modsel-7.xml", >+ "web-platform-tests/css/selectors/css3-modsel-70.xml", >+ "web-platform-tests/css/selectors/css3-modsel-72.xml", >+ "web-platform-tests/css/selectors/css3-modsel-72b.xml", >+ "web-platform-tests/css/selectors/css3-modsel-73.xml", >+ "web-platform-tests/css/selectors/css3-modsel-73b.xml", >+ "web-platform-tests/css/selectors/css3-modsel-74.xml", >+ "web-platform-tests/css/selectors/css3-modsel-74b.xml", >+ "web-platform-tests/css/selectors/css3-modsel-75.xml", >+ "web-platform-tests/css/selectors/css3-modsel-75b.xml", >+ "web-platform-tests/css/selectors/css3-modsel-76.xml", >+ "web-platform-tests/css/selectors/css3-modsel-76b.xml", >+ "web-platform-tests/css/selectors/css3-modsel-77.xml", >+ "web-platform-tests/css/selectors/css3-modsel-77b.xml", >+ "web-platform-tests/css/selectors/css3-modsel-78.xml", >+ "web-platform-tests/css/selectors/css3-modsel-78b.xml", >+ "web-platform-tests/css/selectors/css3-modsel-79.xml", >+ "web-platform-tests/css/selectors/css3-modsel-7b.xml", >+ "web-platform-tests/css/selectors/css3-modsel-8.xml", >+ "web-platform-tests/css/selectors/css3-modsel-80.xml", >+ "web-platform-tests/css/selectors/css3-modsel-81.xml", >+ "web-platform-tests/css/selectors/css3-modsel-81b.xml", >+ "web-platform-tests/css/selectors/css3-modsel-82.xml", >+ "web-platform-tests/css/selectors/css3-modsel-82b.xml", >+ "web-platform-tests/css/selectors/css3-modsel-83.xml", >+ "web-platform-tests/css/selectors/css3-modsel-86.xml", >+ "web-platform-tests/css/selectors/css3-modsel-87.xml", >+ "web-platform-tests/css/selectors/css3-modsel-87b.xml", >+ "web-platform-tests/css/selectors/css3-modsel-88.xml", >+ "web-platform-tests/css/selectors/css3-modsel-88b.xml", >+ "web-platform-tests/css/selectors/css3-modsel-89.xml", >+ "web-platform-tests/css/selectors/css3-modsel-9.xml", >+ "web-platform-tests/css/selectors/css3-modsel-90.xml", >+ "web-platform-tests/css/selectors/css3-modsel-90b.xml", >+ "web-platform-tests/css/selectors/css3-modsel-91.xml", >+ "web-platform-tests/css/selectors/css3-modsel-92.xml", >+ "web-platform-tests/css/selectors/css3-modsel-93.xml", >+ "web-platform-tests/css/selectors/css3-modsel-94.xml", >+ "web-platform-tests/css/selectors/css3-modsel-94b.xml", >+ "web-platform-tests/css/selectors/css3-modsel-95.xml", >+ "web-platform-tests/css/selectors/css3-modsel-96.xml", >+ "web-platform-tests/css/selectors/css3-modsel-96b.xml", >+ "web-platform-tests/css/selectors/css3-modsel-97.xml", >+ "web-platform-tests/css/selectors/css3-modsel-97b.xml", >+ "web-platform-tests/css/selectors/css3-modsel-98.xml", >+ "web-platform-tests/css/selectors/css3-modsel-98b.xml", >+ "web-platform-tests/css/selectors/css3-modsel-99.xml", >+ "web-platform-tests/css/selectors/css3-modsel-99b.xml", >+ "web-platform-tests/css/selectors/css3-modsel-d1.xml", >+ "web-platform-tests/css/selectors/css3-modsel-d1b.xml", >+ "web-platform-tests/css/selectors/css3-modsel-d2.xml", >+ "web-platform-tests/css/selectors/css3-modsel-d3.xml", >+ "web-platform-tests/css/selectors/css3-modsel-d4.xml", >+ "web-platform-tests/css/selectors/selection-image-001-no-selection-noref.html", >+ "web-platform-tests/css/selectors/selection-image-001-noref.html", > "web-platform-tests/cssom-view/iframe.html", > "web-platform-tests/cssom/support/xmlss-pi.xhtml", > "web-platform-tests/dom/events/EventListener-incumbent-global-subframe-1.sub.html", >@@ -325,7 +747,15 @@ > "web-platform-tests/dom/nodes/ParentNode-querySelector-All-content.html", > "web-platform-tests/dom/nodes/ParentNode-querySelector-All-content.xht", > "web-platform-tests/dom/nodes/getElementsByClassNameFrame.htm", >+ "web-platform-tests/dom/nodes/query-target-in-load-event.part.html", > "web-platform-tests/dom/ranges/Range-test-iframe.html", >+ "web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp_chars-cseucpkdfmtjapanese.html", >+ "web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp_chars-x-euc-jp.html", >+ "web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp_chars.html", >+ "web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp_errors.html", >+ "web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp_chars-csiso2022jp.html", >+ "web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp_chars.html", >+ "web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp_errors.html", > "web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis_chars-csshiftjis.html", > "web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis_chars-ms932.html", > "web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis_chars-ms_kanji.html", >@@ -482,11 +912,19 @@ > "web-platform-tests/html/browsers/history/the-session-history-of-browsing-contexts/navigation-in-onload_form-submission-2.tentative.html", > "web-platform-tests/html/browsers/history/the-session-history-of-browsing-contexts/navigation-in-onload_form-submission-dynamic-iframe.tentative.html", > "web-platform-tests/html/browsers/history/the-session-history-of-browsing-contexts/navigation-in-onload_form-submission-iframe.tentative.html", >+ "web-platform-tests/html/browsers/offline/browser-state/navigator_online_event-manual.https.html", >+ "web-platform-tests/html/browsers/offline/manifest_main_empty-manual.https.html", >+ "web-platform-tests/html/browsers/offline/manifest_notchanged_online-manual.https.html", >+ "web-platform-tests/html/browsers/offline/manifest_section_empty-manual.https.html", >+ "web-platform-tests/html/browsers/offline/manifest_section_many-manual.https.html", >+ "web-platform-tests/html/browsers/offline/section_network_offline-manual.https.html", >+ "web-platform-tests/html/browsers/offline/section_network_online-manual.https.html", > "web-platform-tests/html/browsers/origin/cross-origin-objects/frame-with-then.html", > "web-platform-tests/html/browsers/origin/cross-origin-objects/frame.html", > "web-platform-tests/html/browsers/origin/cross-origin-objects/win-documentdomain.sub.html", > "web-platform-tests/html/browsers/origin/relaxing-the-same-origin-restriction/document_domain_setter_iframe.html", > "web-platform-tests/html/browsers/origin/relaxing-the-same-origin-restriction/support/document_domain_frame.html", >+ "web-platform-tests/html/browsers/origin/relaxing-the-same-origin-restriction/support/document_domain_setter_iframe.html", > "web-platform-tests/html/browsers/sandboxing/inner-iframe.html", > "web-platform-tests/html/browsers/the-window-object/accessing-other-browsing-contexts/test1.html", > "web-platform-tests/html/browsers/the-window-object/accessing-other-browsing-contexts/test2.html", >@@ -595,6 +1033,7 @@ > "web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/iframe_sandbox_029.htm", > "web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/iframe_sandbox_031.htm", > "web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/iframe_sandbox_032.htm", >+ "web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/load-into-the-iframe.html", > "web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/navigation-changed-iframe.html", > "web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/sandbox_allow_script.html", > "web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/standalone-fail.htm", >@@ -662,6 +1101,9 @@ > "web-platform-tests/secure-contexts/support/https-subframe-dedicated.html", > "web-platform-tests/secure-contexts/support/https-subframe-shared.html", > "web-platform-tests/secure-contexts/support/shared-worker-insecure-popup.html", >+ "web-platform-tests/service-workers/service-worker/fetch-event-is-history-backward-navigation-manual.https.html", >+ "web-platform-tests/service-workers/service-worker/fetch-event-is-history-forward-navigation-manual.https.html", >+ "web-platform-tests/service-workers/service-worker/fetch-event-is-reload-navigation-manual.https.html", > "web-platform-tests/service-workers/service-worker/multi-globals/current/current.https.html", > "web-platform-tests/service-workers/service-worker/multi-globals/incumbent/incumbent.https.html", > "web-platform-tests/service-workers/service-worker/multi-globals/relevant/relevant.https.html", >@@ -680,6 +1122,9 @@ > "web-platform-tests/workers/semantics/xhr/001-1.xml", > "web-platform-tests/workers/semantics/xhr/support/001-1.xml", > "web-platform-tests/workers/support/WorkerLocation-origin.html", >- "web-platform-tests/workers/support/sandboxed-tests.html" >+ "web-platform-tests/workers/support/iframe_sw_dataUrl.html", >+ "web-platform-tests/workers/support/sandboxed-tests.html", >+ "web-platform-tests/xhr/xmlhttprequest-sync-block-defer-scripts-subframe.html", >+ "web-platform-tests/xhr/xmlhttprequest-sync-not-hang-scriptloader-subframe.html" > ] > } >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-transfer.html b/LayoutTests/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-transfer.html >index ebda395b758387e868092dcc9be6ed8ea53dfffd..030263472a36c76f7ce15256187a658ed6b77cf7 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-transfer.html >+++ b/LayoutTests/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-transfer.html >@@ -8,20 +8,19 @@ > <script src="common.sub.js"></script> > <div id=log></div> > <script> >-let worker, tests = {}; >+let worker, continuations = {}; > setup(function() { > worker = new Worker("transfer-worker.js"); > worker.addEventListener("message", function(event) { > let { name, bitmap } = event.data; >- tests[name](bitmap); >+ if (continuations.hasOwnProperty(name)) { >+ continuations[name](bitmap); >+ } > }); > }); > > for (let { name, factory } of imageSourceTypes) { > promise_test(function(t) { >- let message_handler = new Promise(function(resolve) { >- tests[t.name] = resolve; >- }); > return factory().then(createImageBitmap).then(function(bitmap) { > assert_equals(bitmap.width, 20); > assert_equals(bitmap.height, 20); >@@ -31,7 +30,9 @@ for (let { name, factory } of imageSourceTypes) { > assert_equals(bitmap.width, 0); > assert_equals(bitmap.height, 0); > >- return message_handler; >+ return new Promise(function(resolve) { >+ continuations[t.name] = resolve; >+ }); > }).then(function(bitmap) { > assert_class_string(bitmap, "ImageBitmap"); > assert_equals(bitmap.width, 20); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/2dcontext/imagebitmap/w3c-import.log b/LayoutTests/imported/w3c/web-platform-tests/2dcontext/imagebitmap/w3c-import.log >index 01be627bd3fc28cbc68a98482bb4fec8bcff36de..c8b42711cf724d1982fedbb58c7143136e002f18 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/2dcontext/imagebitmap/w3c-import.log >+++ b/LayoutTests/imported/w3c/web-platform-tests/2dcontext/imagebitmap/w3c-import.log >@@ -19,3 +19,5 @@ List of files: > /LayoutTests/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args.html > /LayoutTests/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-origin.sub.html > /LayoutTests/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-sizeOverflow.html >+/LayoutTests/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-transfer.html >+/LayoutTests/imported/w3c/web-platform-tests/2dcontext/imagebitmap/transfer-worker.js >diff --git a/LayoutTests/imported/w3c/web-platform-tests/BackgroundSync/OWNERS b/LayoutTests/imported/w3c/web-platform-tests/BackgroundSync/OWNERS >new file mode 100644 >index 0000000000000000000000000000000000000000..9cc0eff9fd27ff31f34c64222976322b62fe206a >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/BackgroundSync/OWNERS >@@ -0,0 +1 @@ >+@beverloo >diff --git a/LayoutTests/imported/w3c/web-platform-tests/BackgroundSync/interfaces.any-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/BackgroundSync/interfaces.any-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..1592ff6255870dc9d27f022527246586ed0e5dfc >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/BackgroundSync/interfaces.any-expected.txt >@@ -0,0 +1,25 @@ >+ >+FAIL Background Sync interfaces. promise_test: Unhandled rejection with value: object "Unrecognised tokens, line 1 (tokens: '{"error": {') >+[ >+ { >+ "type": "other", >+ "value": "{" >+ }, >+ { >+ "type": "string", >+ "value": "\"error\"" >+ }, >+ { >+ "type": "other", >+ "value": ":" >+ }, >+ { >+ "type": "whitespace", >+ "value": " " >+ }, >+ { >+ "type": "other", >+ "value": "{" >+ } >+]" >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/BackgroundSync/interfaces.any.html b/LayoutTests/imported/w3c/web-platform-tests/BackgroundSync/interfaces.any.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/BackgroundSync/interfaces.any.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/BackgroundSync/interfaces.any.js b/LayoutTests/imported/w3c/web-platform-tests/BackgroundSync/interfaces.any.js >new file mode 100644 >index 0000000000000000000000000000000000000000..207a0d5d684a8cc9cedd60219304348e9565394a >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/BackgroundSync/interfaces.any.js >@@ -0,0 +1,21 @@ >+// META: script=/resources/WebIDLParser.js >+// META: script=/resources/idlharness.js >+ >+'use strict'; >+ >+// https://wicg.github.io/BackgroundSync/spec/ >+ >+promise_test(async () => { >+ const idl = await fetch('/interfaces/BackgroundSync.idl').then(r => r.text()); >+ const sw = await fetch('/interfaces/ServiceWorker.idl').then(r => r.text()); >+ const html = await fetch('/interfaces/html.idl').then(r => r.text()); >+ const dom = await fetch('/interfaces/dom.idl').then(r => r.text()); >+ >+ const idlArray = new IdlArray(); >+ idlArray.add_idls(idl); >+ idlArray.add_dependency_idls(sw); >+ idlArray.add_dependency_idls(html); >+ idlArray.add_dependency_idls(dom); >+ idlArray.test(); >+ done(); >+}, 'Background Sync interfaces.'); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/BackgroundSync/interfaces.any.worker-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/BackgroundSync/interfaces.any.worker-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..1592ff6255870dc9d27f022527246586ed0e5dfc >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/BackgroundSync/interfaces.any.worker-expected.txt >@@ -0,0 +1,25 @@ >+ >+FAIL Background Sync interfaces. promise_test: Unhandled rejection with value: object "Unrecognised tokens, line 1 (tokens: '{"error": {') >+[ >+ { >+ "type": "other", >+ "value": "{" >+ }, >+ { >+ "type": "string", >+ "value": "\"error\"" >+ }, >+ { >+ "type": "other", >+ "value": ":" >+ }, >+ { >+ "type": "whitespace", >+ "value": " " >+ }, >+ { >+ "type": "other", >+ "value": "{" >+ } >+]" >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/BackgroundSync/interfaces.any.worker.html b/LayoutTests/imported/w3c/web-platform-tests/BackgroundSync/interfaces.any.worker.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/BackgroundSync/interfaces.any.worker.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/BackgroundSync/w3c-import.log b/LayoutTests/imported/w3c/web-platform-tests/BackgroundSync/w3c-import.log >new file mode 100644 >index 0000000000000000000000000000000000000000..4e25fcdd62a67840c1605fd7d43bcaaa2319489c >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/BackgroundSync/w3c-import.log >@@ -0,0 +1,18 @@ >+The tests in this directory were imported from the W3C repository. >+Do NOT modify these tests directly in WebKit. >+Instead, create a pull request on the WPT github: >+ https://github.com/w3c/web-platform-tests >+ >+Then run the Tools/Scripts/import-w3c-tests in WebKit to reimport >+ >+Do NOT modify or remove this file. >+ >+------------------------------------------------------------------------ >+Properties requiring vendor prefixes: >+None >+Property values requiring vendor prefixes: >+None >+------------------------------------------------------------------------ >+List of files: >+/LayoutTests/imported/w3c/web-platform-tests/BackgroundSync/OWNERS >+/LayoutTests/imported/w3c/web-platform-tests/BackgroundSync/interfaces.any.js >diff --git a/LayoutTests/imported/w3c/web-platform-tests/FileAPI/BlobURL/support/file_test2.txt b/LayoutTests/imported/w3c/web-platform-tests/FileAPI/BlobURL/support/file_test2.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 >diff --git a/LayoutTests/imported/w3c/web-platform-tests/FileAPI/BlobURL/support/w3c-import.log b/LayoutTests/imported/w3c/web-platform-tests/FileAPI/BlobURL/support/w3c-import.log >index 06ae8c12c3a6fd0e05dae873053ffbb1edc97ea8..d58eaac94f97d6fab44a4d33507440cb935a9f2b 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/FileAPI/BlobURL/support/w3c-import.log >+++ b/LayoutTests/imported/w3c/web-platform-tests/FileAPI/BlobURL/support/w3c-import.log >@@ -14,6 +14,4 @@ Property values requiring vendor prefixes: > None > ------------------------------------------------------------------------ > List of files: >-/LayoutTests/imported/w3c/web-platform-tests/FileAPI/BlobURL/support/file_test1.js > /LayoutTests/imported/w3c/web-platform-tests/FileAPI/BlobURL/support/file_test2.txt >-/LayoutTests/imported/w3c/web-platform-tests/FileAPI/BlobURL/support/file_test3.html >diff --git a/LayoutTests/imported/w3c/web-platform-tests/FileAPI/FileReader/support/file_test1.txt b/LayoutTests/imported/w3c/web-platform-tests/FileAPI/FileReader/support/file_test1.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 >diff --git a/LayoutTests/imported/w3c/web-platform-tests/FileAPI/FileReader/workers-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/FileAPI/FileReader/workers-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..c1c8d1a05172bafd030faffeebb26a11348158f4 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/FileAPI/FileReader/workers-expected.txt >@@ -0,0 +1,6 @@ >+CONSOLE MESSAGE: line 7: InvalidStateError: The object is in an invalid state. >+ >+Harness Error (FAIL), message = InvalidStateError: The object is in an invalid state. >+ >+TIMEOUT FileReader created after a worker self.close() Test timed out >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/FileAPI/FileReader/workers.html b/LayoutTests/imported/w3c/web-platform-tests/FileAPI/FileReader/workers.html >new file mode 100644 >index 0000000000000000000000000000000000000000..8e114eeaf86ff55e6944bff0b17a099f6d8a02f8 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/FileAPI/FileReader/workers.html >@@ -0,0 +1,27 @@ >+<!DOCTYPE html> >+<meta charset=utf-8> >+<script src="/resources/testharness.js"></script> >+<script src="/resources/testharnessreport.js"></script> >+<script> >+ >+async_test(t => { >+ function workerCode() { >+ close(); >+ var blob = new Blob([123]); >+ var fr = new FileReader(); >+ fr.readAsText(blob); >+ fr.abort() >+ fr.readAsArrayBuffer(blob); >+ postMessage(true); >+ } >+ >+ var workerBlob = new Blob([workerCode.toString() + ";workerCode();"], {type:"application/javascript"}); >+ >+ var w = new Worker(URL.createObjectURL(workerBlob)); >+ w.onmessage = function(e) { >+ assert_true(e.data, "FileReader created during worker shutdown."); >+ t.done(); >+ } >+}, 'FileReader created after a worker self.close()'); >+ >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/FileAPI/blob/Blob-constructor-endings-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/FileAPI/blob/Blob-constructor-endings-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..1e0a15d3fd9f0548101a556c9c62b66b1860b29f >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/FileAPI/blob/Blob-constructor-endings-expected.txt >@@ -0,0 +1,47 @@ >+ >+PASS Valid "endings" value: "transparent" >+PASS Valid "endings" value: "native" >+PASS Invalid "endings" value: null >+PASS Invalid "endings" value: "" >+PASS Invalid "endings" value: "invalidEnumValue" >+PASS Invalid "endings" value: "Transparent" >+PASS Invalid "endings" value: "NATIVE" >+PASS Invalid "endings" value: 0 >+PASS Invalid "endings" value: {} >+PASS Exception propagation from options >+PASS The "endings" options property is used >+PASS Input LF with endings unspecified >+PASS Input LF with endings 'transparent' >+PASS Input LF with endings 'native' >+PASS Input CR with endings unspecified >+PASS Input CR with endings 'transparent' >+PASS Input CR with endings 'native' >+PASS Input CRLF with endings unspecified >+PASS Input CRLF with endings 'transparent' >+PASS Input CRLF with endings 'native' >+PASS Input CRCR with endings unspecified >+PASS Input CRCR with endings 'transparent' >+PASS Input CRCR with endings 'native' >+PASS Input LFCR with endings unspecified >+PASS Input LFCR with endings 'transparent' >+PASS Input LFCR with endings 'native' >+PASS Input LFLF with endings unspecified >+PASS Input LFLF with endings 'transparent' >+PASS Input LFLF with endings 'native' >+PASS Input CRCRLF with endings unspecified >+PASS Input CRCRLF with endings 'transparent' >+PASS Input CRCRLF with endings 'native' >+PASS Input CRLFLF with endings unspecified >+PASS Input CRLFLF with endings 'transparent' >+PASS Input CRLFLF with endings 'native' >+PASS Input CRLFCR with endings unspecified >+PASS Input CRLFCR with endings 'transparent' >+PASS Input CRLFCR with endings 'native' >+PASS Input CRLFCRLF with endings unspecified >+PASS Input CRLFCRLF with endings 'transparent' >+PASS Input CRLFCRLF with endings 'native' >+PASS Input LFCRLFCR with endings unspecified >+PASS Input LFCRLFCR with endings 'transparent' >+PASS Input LFCRLFCR with endings 'native' >+PASS CR/LF in adjacent input strings >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/FileAPI/blob/Blob-constructor-endings.html b/LayoutTests/imported/w3c/web-platform-tests/FileAPI/blob/Blob-constructor-endings.html >new file mode 100644 >index 0000000000000000000000000000000000000000..1dee99ff775da3562194719be06b711c246b30ef >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/FileAPI/blob/Blob-constructor-endings.html >@@ -0,0 +1,104 @@ >+<!DOCTYPE html> >+<meta charset=utf-8> >+<title>Blob constructor: endings option</title> >+<link rel=help href="https://w3c.github.io/FileAPI/#constructorBlob"> >+<script src="/resources/testharness.js"></script> >+<script src="/resources/testharnessreport.js"></script> >+<script> >+ >+// Windows platforms use CRLF as the native line ending. All others use LF. >+const crlf = navigator.platform.startsWith('Win'); >+const native_ending = crlf ? '\r\n' : '\n'; >+ >+function readBlobAsPromise(blob) { >+ return new Promise((resolve, reject) => { >+ const reader = new FileReader(); >+ reader.readAsText(blob); >+ reader.onload = e => resolve(reader.result); >+ reader.onerror = e => reject(reader.error); >+ }); >+} >+ >+[ >+ 'transparent', >+ 'native' >+].forEach(value => test(t => { >+ assert_class_string(new Blob([], {endings: value}), 'Blob', >+ `Constructor should allow "${value}" endings`); >+}, `Valid "endings" value: ${JSON.stringify(value)}`)); >+ >+[ >+ null, >+ '', >+ 'invalidEnumValue', >+ 'Transparent', >+ 'NATIVE', >+ 0, >+ {} >+].forEach(value => test(t => { >+ assert_throws(new TypeError(), () => new Blob([], {endings: value}), >+ 'Blob constructor should throw'); >+}, `Invalid "endings" value: ${JSON.stringify(value)}`)); >+ >+test(t => { >+ const test_error = {name: 'test'}; >+ assert_throws( >+ test_error, >+ () => new Blob([], { get endings() { throw test_error; }}), >+ 'Blob constructor should propagate exceptions from "endings" property'); >+}, 'Exception propagation from options'); >+ >+test(t => { >+ let got = false; >+ new Blob([], { get endings() { got = true; } }); >+ assert_true(got, 'The "endings" property was accessed during construction.'); >+}, 'The "endings" options property is used'); >+ >+[ >+ {name: 'LF', input: '\n', native: native_ending}, >+ {name: 'CR', input: '\r', native: native_ending}, >+ >+ {name: 'CRLF', input: '\r\n', native: native_ending}, >+ {name: 'CRCR', input: '\r\r', native: native_ending.repeat(2)}, >+ {name: 'LFCR', input: '\n\r', native: native_ending.repeat(2)}, >+ {name: 'LFLF', input: '\n\n', native: native_ending.repeat(2)}, >+ >+ {name: 'CRCRLF', input: '\r\r\n', native: native_ending.repeat(2)}, >+ {name: 'CRLFLF', input: '\r\n\n', native: native_ending.repeat(2)}, >+ {name: 'CRLFCR', input: '\r\n\r\n', native: native_ending.repeat(2)}, >+ >+ {name: 'CRLFCRLF', input: '\r\n\r\n', native: native_ending.repeat(2)}, >+ {name: 'LFCRLFCR', input: '\n\r\n\r', native: native_ending.repeat(3)}, >+ >+].forEach(testCase => { >+ promise_test(async t => { >+ const blob = new Blob([testCase.input]); >+ assert_equals( >+ await readBlobAsPromise(blob), testCase.input, >+ 'Newlines should not change with endings unspecified'); >+ }, `Input ${testCase.name} with endings unspecified`); >+ >+ promise_test(async t => { >+ const blob = new Blob([testCase.input], {endings: 'transparent'}); >+ assert_equals( >+ await readBlobAsPromise(blob), testCase.input, >+ 'Newlines should not change with endings "transparent"'); >+ }, `Input ${testCase.name} with endings 'transparent'`); >+ >+ promise_test(async t => { >+ const blob = new Blob([testCase.input], {endings: 'native'}); >+ assert_equals( >+ await readBlobAsPromise(blob), testCase.native, >+ 'Newlines should match the platform with endings "native"'); >+ }, `Input ${testCase.name} with endings 'native'`); >+}); >+ >+promise_test(async t => { >+ const blob = new Blob(['\r', '\n'], {endings: 'native'}); >+ const expected = native_ending.repeat(2); >+ assert_equals( >+ await readBlobAsPromise(blob), expected, >+ 'CR/LF in adjacent strings should be converted to two platform newlines'); >+}, `CR/LF in adjacent input strings`); >+ >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/FileAPI/blob/w3c-import.log b/LayoutTests/imported/w3c/web-platform-tests/FileAPI/blob/w3c-import.log >index f81e3683fcf1b13e64dff774ea0f9e211a2cf692..9ae9f1d64ef2fb2f6e4472151f8527a7e423d945 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/FileAPI/blob/w3c-import.log >+++ b/LayoutTests/imported/w3c/web-platform-tests/FileAPI/blob/w3c-import.log >@@ -14,6 +14,7 @@ Property values requiring vendor prefixes: > None > ------------------------------------------------------------------------ > List of files: >+/LayoutTests/imported/w3c/web-platform-tests/FileAPI/blob/Blob-constructor-endings.html > /LayoutTests/imported/w3c/web-platform-tests/FileAPI/blob/Blob-constructor.html > /LayoutTests/imported/w3c/web-platform-tests/FileAPI/blob/Blob-in-worker.worker.js > /LayoutTests/imported/w3c/web-platform-tests/FileAPI/blob/Blob-slice-overflow.html >diff --git a/LayoutTests/imported/w3c/web-platform-tests/FileAPI/file/File-constructor-endings-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/FileAPI/file/File-constructor-endings-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..01f97b7cf5060402a55ee341d5063f805442e3c6 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/FileAPI/file/File-constructor-endings-expected.txt >@@ -0,0 +1,47 @@ >+ >+PASS Valid "endings" value: "transparent" >+PASS Valid "endings" value: "native" >+PASS Invalid "endings" value: null >+PASS Invalid "endings" value: "" >+PASS Invalid "endings" value: "invalidEnumValue" >+PASS Invalid "endings" value: "Transparent" >+PASS Invalid "endings" value: "NATIVE" >+PASS Invalid "endings" value: 0 >+PASS Invalid "endings" value: {} >+PASS Exception propagation from options >+PASS The "endings" options property is used >+PASS Input LF with endings unspecified >+PASS Input LF with endings 'transparent' >+PASS Input LF with endings 'native' >+PASS Input CR with endings unspecified >+PASS Input CR with endings 'transparent' >+FAIL Input CR with endings 'native' assert_equals: Newlines should match the platform with endings "native" expected "\n" but got "\r" >+PASS Input CRLF with endings unspecified >+PASS Input CRLF with endings 'transparent' >+FAIL Input CRLF with endings 'native' assert_equals: Newlines should match the platform with endings "native" expected "\n" but got "\r\n" >+PASS Input CRCR with endings unspecified >+PASS Input CRCR with endings 'transparent' >+FAIL Input CRCR with endings 'native' assert_equals: Newlines should match the platform with endings "native" expected "\n\n" but got "\r\r" >+PASS Input LFCR with endings unspecified >+PASS Input LFCR with endings 'transparent' >+FAIL Input LFCR with endings 'native' assert_equals: Newlines should match the platform with endings "native" expected "\n\n" but got "\n\r" >+PASS Input LFLF with endings unspecified >+PASS Input LFLF with endings 'transparent' >+PASS Input LFLF with endings 'native' >+PASS Input CRCRLF with endings unspecified >+PASS Input CRCRLF with endings 'transparent' >+FAIL Input CRCRLF with endings 'native' assert_equals: Newlines should match the platform with endings "native" expected "\n\n" but got "\r\r\n" >+PASS Input CRLFLF with endings unspecified >+PASS Input CRLFLF with endings 'transparent' >+FAIL Input CRLFLF with endings 'native' assert_equals: Newlines should match the platform with endings "native" expected "\n\n" but got "\r\n\n" >+PASS Input CRLFCR with endings unspecified >+PASS Input CRLFCR with endings 'transparent' >+FAIL Input CRLFCR with endings 'native' assert_equals: Newlines should match the platform with endings "native" expected "\n\n" but got "\r\n\r\n" >+PASS Input CRLFCRLF with endings unspecified >+PASS Input CRLFCRLF with endings 'transparent' >+FAIL Input CRLFCRLF with endings 'native' assert_equals: Newlines should match the platform with endings "native" expected "\n\n" but got "\r\n\r\n" >+PASS Input LFCRLFCR with endings unspecified >+PASS Input LFCRLFCR with endings 'transparent' >+FAIL Input LFCRLFCR with endings 'native' assert_equals: Newlines should match the platform with endings "native" expected "\n\n\n" but got "\n\r\n\r" >+FAIL CR/LF in adjacent input strings assert_equals: CR/LF in adjacent strings should be converted to two platform newlines expected "\n\n" but got "\r\n" >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/FileAPI/file/File-constructor-endings.html b/LayoutTests/imported/w3c/web-platform-tests/FileAPI/file/File-constructor-endings.html >new file mode 100644 >index 0000000000000000000000000000000000000000..f0f9090768f48e25fb7fd47e5cd182bf11f065e4 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/FileAPI/file/File-constructor-endings.html >@@ -0,0 +1,104 @@ >+<!DOCTYPE html> >+<meta charset=utf-8> >+<title>File constructor: endings option</title> >+<link rel=help href="https://w3c.github.io/FileAPI/#file-constructor"> >+<script src="/resources/testharness.js"></script> >+<script src="/resources/testharnessreport.js"></script> >+<script> >+ >+// Windows platforms use CRLF as the native line ending. All others use LF. >+const crlf = navigator.platform.startsWith('Win'); >+const native_ending = crlf ? '\r\n' : '\n'; >+ >+function readBlobAsPromise(blob) { >+ return new Promise((resolve, reject) => { >+ const reader = new FileReader(); >+ reader.readAsText(blob); >+ reader.onload = e => resolve(reader.result); >+ reader.onerror = e => reject(reader.error); >+ }); >+} >+ >+[ >+ 'transparent', >+ 'native' >+].forEach(value => test(t => { >+ assert_class_string(new File([], "name", {endings: value}), 'File', >+ `Constructor should allow "${value}" endings`); >+}, `Valid "endings" value: ${JSON.stringify(value)}`)); >+ >+[ >+ null, >+ '', >+ 'invalidEnumValue', >+ 'Transparent', >+ 'NATIVE', >+ 0, >+ {} >+].forEach(value => test(t => { >+ assert_throws(new TypeError(), () => new File([], "name", {endings: value}), >+ 'File constructor should throw'); >+}, `Invalid "endings" value: ${JSON.stringify(value)}`)); >+ >+test(t => { >+ const test_error = {name: 'test'}; >+ assert_throws( >+ test_error, >+ () => new File([], "name", { get endings() { throw test_error; }}), >+ 'File constructor should propagate exceptions from "endings" property'); >+}, 'Exception propagation from options'); >+ >+test(t => { >+ let got = false; >+ new File([], "name", { get endings() { got = true; } }); >+ assert_true(got, 'The "endings" property was accessed during construction.'); >+}, 'The "endings" options property is used'); >+ >+[ >+ {name: 'LF', input: '\n', native: native_ending}, >+ {name: 'CR', input: '\r', native: native_ending}, >+ >+ {name: 'CRLF', input: '\r\n', native: native_ending}, >+ {name: 'CRCR', input: '\r\r', native: native_ending.repeat(2)}, >+ {name: 'LFCR', input: '\n\r', native: native_ending.repeat(2)}, >+ {name: 'LFLF', input: '\n\n', native: native_ending.repeat(2)}, >+ >+ {name: 'CRCRLF', input: '\r\r\n', native: native_ending.repeat(2)}, >+ {name: 'CRLFLF', input: '\r\n\n', native: native_ending.repeat(2)}, >+ {name: 'CRLFCR', input: '\r\n\r\n', native: native_ending.repeat(2)}, >+ >+ {name: 'CRLFCRLF', input: '\r\n\r\n', native: native_ending.repeat(2)}, >+ {name: 'LFCRLFCR', input: '\n\r\n\r', native: native_ending.repeat(3)}, >+ >+].forEach(testCase => { >+ promise_test(async t => { >+ const file = new File([testCase.input], "name"); >+ assert_equals( >+ await readBlobAsPromise(file), testCase.input, >+ 'Newlines should not change with endings unspecified'); >+ }, `Input ${testCase.name} with endings unspecified`); >+ >+ promise_test(async t => { >+ const file = new File([testCase.input], "name", {endings: 'transparent'}); >+ assert_equals( >+ await readBlobAsPromise(file), testCase.input, >+ 'Newlines should not change with endings "transparent"'); >+ }, `Input ${testCase.name} with endings 'transparent'`); >+ >+ promise_test(async t => { >+ const file = new File([testCase.input], "name", {endings: 'native'}); >+ assert_equals( >+ await readBlobAsPromise(file), testCase.native, >+ 'Newlines should match the platform with endings "native"'); >+ }, `Input ${testCase.name} with endings 'native'`); >+}); >+ >+promise_test(async t => { >+ const file = new File(['\r', '\n'], "name", {endings: 'native'}); >+ const expected = native_ending.repeat(2); >+ assert_equals( >+ await readBlobAsPromise(file), expected, >+ 'CR/LF in adjacent strings should be converted to two platform newlines'); >+}, `CR/LF in adjacent input strings`); >+ >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/FileAPI/file/send-file-form-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/FileAPI/file/send-file-form-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..b0de1ca6d1d1c05994f257a30e050468e037b98d >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/FileAPI/file/send-file-form-expected.txt >@@ -0,0 +1,3 @@ >+ >+FAIL Upload file-for-upload-in-form.txt (ASCII) in UTF-8 form promise_test: Unhandled rejection with value: object "TypeError: function is not a constructor (evaluating 'new DataTransfer')" >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/FileAPI/file/send-file-form-iso-2022-jp.tentative-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/FileAPI/file/send-file-form-iso-2022-jp.tentative-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..a3e5b183a04f1de9ee7079d869f3ead669c520d1 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/FileAPI/file/send-file-form-iso-2022-jp.tentative-expected.txt >@@ -0,0 +1,8 @@ >+ >+FAIL Upload file-for-upload-in-form.txt (ASCII) in ISO-2022-JP form promise_test: Unhandled rejection with value: object "TypeError: function is not a constructor (evaluating 'new DataTransfer')" >+FAIL Upload file-for-upload-in-form-ï°ïïï .txt (x-user-defined) in ISO-2022-JP form promise_test: Unhandled rejection with value: object "TypeError: function is not a constructor (evaluating 'new DataTransfer')" >+FAIL Upload file-for-upload-in-form-â˺ðŸËâ.txt (windows-1252) in ISO-2022-JP form promise_test: Unhandled rejection with value: object "TypeError: function is not a constructor (evaluating 'new DataTransfer')" >+FAIL Upload file-for-upload-in-form-â æâ .txt (JIS X 0201 and JIS X 0208) in ISO-2022-JP form promise_test: Unhandled rejection with value: object "TypeError: function is not a constructor (evaluating 'new DataTransfer')" >+FAIL Upload file-for-upload-in-form-âºð.txt (Unicode) in ISO-2022-JP form promise_test: Unhandled rejection with value: object "TypeError: function is not a constructor (evaluating 'new DataTransfer')" >+FAIL Upload file-for-upload-in-form-ABC~â¾Â¥â¤・ã»â¢â·â¼â æðæâ â¼Â·ââ¢ã»ï½¥Â¤âÂ¥â¾~XYZ.txt (Unicode) in ISO-2022-JP form promise_test: Unhandled rejection with value: object "TypeError: function is not a constructor (evaluating 'new DataTransfer')" >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/FileAPI/file/send-file-form-iso-2022-jp.tentative.html b/LayoutTests/imported/w3c/web-platform-tests/FileAPI/file/send-file-form-iso-2022-jp.tentative.html >new file mode 100644 >index 0000000000000000000000000000000000000000..421de301298ba55a70124290066eaf66e6416394 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/FileAPI/file/send-file-form-iso-2022-jp.tentative.html >@@ -0,0 +1,71 @@ >+<!DOCTYPE html> >+<meta charset="utf-8"> >+<title>Upload files in ISO-2022-JP form (tentative)</title> >+<!-- >+ NOTE: This test is tentative because encoding for filename >+ characters unrepresentable in the form charset is not yet >+ standardized. >+ --> >+<link rel="help" >+ href="https://github.com/whatwg/html/issues/3223"> >+<link rel="help" >+ href="https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#multipart-form-data"> >+<link rel="help" >+ href="https://html.spec.whatwg.org/multipage/dnd.html#datatransferitemlist"> >+<link rel="help" >+ href="https://w3c.github.io/FileAPI/#file-constructor"> >+<link rel="author" title="Benjamin C. Wiley Sittler" >+ href="mailto:bsittler@chromium.org"> >+<script src="/resources/testharness.js"></script> >+<script src="/resources/testharnessreport.js"></script> >+<script src="../support/send-file-form-helper.js"></script> >+<script> >+'use strict'; >+ >+formPostFileUploadTest({ >+ fileNameSource: 'ASCII', >+ fileBaseName: 'file-for-upload-in-form.txt', >+ formEncoding: 'ISO-2022-JP', >+ expectedEncodedBaseName: 'file-for-upload-in-form.txt', >+}); >+ >+formPostFileUploadTest({ >+ fileNameSource: 'x-user-defined', >+ fileBaseName: 'file-for-upload-in-form-\uF7F0\uF793\uF783\uF7A0.txt', >+ formEncoding: 'ISO-2022-JP', >+ expectedEncodedBaseName: ( >+ 'file-for-upload-in-form-.txt'), >+}); >+ >+formPostFileUploadTest({ >+ fileNameSource: 'windows-1252', >+ fileBaseName: 'file-for-upload-in-form-â˺ðŸËâ.txt', >+ formEncoding: 'ISO-2022-JP', >+ expectedEncodedBaseName: ( >+ 'file-for-upload-in-form-☺😂.txt'), >+}); >+ >+formPostFileUploadTest({ >+ fileNameSource: 'JIS X 0201 and JIS X 0208', >+ fileBaseName: 'file-for-upload-in-form-â æâ .txt', >+ formEncoding: 'ISO-2022-JP', >+ expectedEncodedBaseName: 'file-for-upload-in-form-\x1B$B!z@1!z\x1B(B.txt', >+}); >+ >+formPostFileUploadTest({ >+ fileNameSource: 'Unicode', >+ fileBaseName: 'file-for-upload-in-form-âºð.txt', >+ formEncoding: 'ISO-2022-JP', >+ expectedEncodedBaseName: 'file-for-upload-in-form-☺😂.txt', >+}); >+ >+formPostFileUploadTest({ >+ fileNameSource: 'Unicode', >+ fileBaseName: `file-for-upload-in-form-${kTestChars}.txt`, >+ formEncoding: 'ISO-2022-JP', >+ expectedEncodedBaseName: `file-for-upload-in-form-${ >+ kTestFallbackIso2022jp >+ }.txt`, >+}); >+ >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/FileAPI/file/send-file-form-utf-8-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/FileAPI/file/send-file-form-utf-8-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..4601f0703d886e804e30b289ae3b7a4712ad4583 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/FileAPI/file/send-file-form-utf-8-expected.txt >@@ -0,0 +1,8 @@ >+ >+FAIL Upload file-for-upload-in-form.txt (ASCII) in UTF-8 form promise_test: Unhandled rejection with value: object "TypeError: function is not a constructor (evaluating 'new DataTransfer')" >+FAIL Upload file-for-upload-in-form-ï°ïïï .txt (x-user-defined) in UTF-8 form promise_test: Unhandled rejection with value: object "TypeError: function is not a constructor (evaluating 'new DataTransfer')" >+FAIL Upload file-for-upload-in-form-â˺ðŸËâ.txt (windows-1252) in UTF-8 form promise_test: Unhandled rejection with value: object "TypeError: function is not a constructor (evaluating 'new DataTransfer')" >+FAIL Upload file-for-upload-in-form-â æâ .txt (JIS X 0201 and JIS X 0208) in UTF-8 form promise_test: Unhandled rejection with value: object "TypeError: function is not a constructor (evaluating 'new DataTransfer')" >+FAIL Upload file-for-upload-in-form-âºð.txt (Unicode) in UTF-8 form promise_test: Unhandled rejection with value: object "TypeError: function is not a constructor (evaluating 'new DataTransfer')" >+FAIL Upload file-for-upload-in-form-ABC~â¾Â¥â¤・ã»â¢â·â¼â æðæâ â¼Â·ââ¢ã»ï½¥Â¤âÂ¥â¾~XYZ.txt (Unicode) in UTF-8 form promise_test: Unhandled rejection with value: object "TypeError: function is not a constructor (evaluating 'new DataTransfer')" >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/FileAPI/file/send-file-form-utf-8.html b/LayoutTests/imported/w3c/web-platform-tests/FileAPI/file/send-file-form-utf-8.html >new file mode 100644 >index 0000000000000000000000000000000000000000..03417ba72e4c2cccef3ff17f4e41bba76cc598bb >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/FileAPI/file/send-file-form-utf-8.html >@@ -0,0 +1,61 @@ >+<!DOCTYPE html> >+<meta charset="utf-8"> >+<title>Upload files in UTF-8 form</title> >+<link rel="help" >+ href="https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#multipart-form-data"> >+<link rel="help" >+ href="https://html.spec.whatwg.org/multipage/dnd.html#datatransferitemlist"> >+<link rel="help" >+ href="https://w3c.github.io/FileAPI/#file-constructor"> >+<link rel="author" title="Benjamin C. Wiley Sittler" >+ href="mailto:bsittler@chromium.org"> >+<script src="/resources/testharness.js"></script> >+<script src="/resources/testharnessreport.js"></script> >+<script src="../support/send-file-form-helper.js"></script> >+<script> >+'use strict'; >+ >+formPostFileUploadTest({ >+ fileNameSource: 'ASCII', >+ fileBaseName: 'file-for-upload-in-form.txt', >+ formEncoding: 'UTF-8', >+ expectedEncodedBaseName: 'file-for-upload-in-form.txt', >+}); >+ >+formPostFileUploadTest({ >+ fileNameSource: 'x-user-defined', >+ fileBaseName: 'file-for-upload-in-form-\uF7F0\uF793\uF783\uF7A0.txt', >+ formEncoding: 'UTF-8', >+ expectedEncodedBaseName: ( >+ 'file-for-upload-in-form-\uF7F0\uF793\uF783\uF7A0.txt'), >+}); >+ >+formPostFileUploadTest({ >+ fileNameSource: 'windows-1252', >+ fileBaseName: 'file-for-upload-in-form-â˺ðŸËâ.txt', >+ formEncoding: 'UTF-8', >+ expectedEncodedBaseName: 'file-for-upload-in-form-â˺ðŸËâ.txt', >+}); >+ >+formPostFileUploadTest({ >+ fileNameSource: 'JIS X 0201 and JIS X 0208', >+ fileBaseName: 'file-for-upload-in-form-â æâ .txt', >+ formEncoding: 'UTF-8', >+ expectedEncodedBaseName: 'file-for-upload-in-form-â æâ .txt', >+}); >+ >+formPostFileUploadTest({ >+ fileNameSource: 'Unicode', >+ fileBaseName: 'file-for-upload-in-form-âºð.txt', >+ formEncoding: 'UTF-8', >+ expectedEncodedBaseName: 'file-for-upload-in-form-âºð.txt', >+}); >+ >+formPostFileUploadTest({ >+ fileNameSource: 'Unicode', >+ fileBaseName: `file-for-upload-in-form-${kTestChars}.txt`, >+ formEncoding: 'UTF-8', >+ expectedEncodedBaseName: `file-for-upload-in-form-${kTestChars}.txt`, >+}); >+ >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/FileAPI/file/send-file-form-windows-1252.tentative-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/FileAPI/file/send-file-form-windows-1252.tentative-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..016ab08ef099dbc3359b57d81d801322a0b1e549 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/FileAPI/file/send-file-form-windows-1252.tentative-expected.txt >@@ -0,0 +1,8 @@ >+ >+FAIL Upload file-for-upload-in-form.txt (ASCII) in windows-1252 form promise_test: Unhandled rejection with value: object "TypeError: function is not a constructor (evaluating 'new DataTransfer')" >+FAIL Upload file-for-upload-in-form-ï°ïïï .txt (x-user-defined) in windows-1252 form promise_test: Unhandled rejection with value: object "TypeError: function is not a constructor (evaluating 'new DataTransfer')" >+FAIL Upload file-for-upload-in-form-â˺ðŸËâ.txt (windows-1252) in windows-1252 form promise_test: Unhandled rejection with value: object "TypeError: function is not a constructor (evaluating 'new DataTransfer')" >+FAIL Upload file-for-upload-in-form-â æâ .txt (JIS X 0201 and JIS X 0208) in windows-1252 form promise_test: Unhandled rejection with value: object "TypeError: function is not a constructor (evaluating 'new DataTransfer')" >+FAIL Upload file-for-upload-in-form-âºð.txt (Unicode) in windows-1252 form promise_test: Unhandled rejection with value: object "TypeError: function is not a constructor (evaluating 'new DataTransfer')" >+FAIL Upload file-for-upload-in-form-ABC~â¾Â¥â¤・ã»â¢â·â¼â æðæâ â¼Â·ââ¢ã»ï½¥Â¤âÂ¥â¾~XYZ.txt (Unicode) in windows-1252 form promise_test: Unhandled rejection with value: object "TypeError: function is not a constructor (evaluating 'new DataTransfer')" >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/FileAPI/file/send-file-form-windows-1252.tentative.html b/LayoutTests/imported/w3c/web-platform-tests/FileAPI/file/send-file-form-windows-1252.tentative.html >new file mode 100644 >index 0000000000000000000000000000000000000000..8e9463f83aecb47ba1da1aa30d1903508e279937 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/FileAPI/file/send-file-form-windows-1252.tentative.html >@@ -0,0 +1,70 @@ >+<!DOCTYPE html> >+<meta charset="utf-8"> >+<title>Upload files in Windows-1252 form (tentative)</title> >+<!-- >+ NOTE: This test is tentative because encoding for filename >+ characters unrepresentable in the form charset is not yet >+ standardized. >+ --> >+<link rel="help" >+ href="https://github.com/whatwg/html/issues/3223"> >+<link rel="help" >+ href="https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#multipart-form-data"> >+<link rel="help" >+ href="https://html.spec.whatwg.org/multipage/dnd.html#datatransferitemlist"> >+<link rel="help" >+ href="https://w3c.github.io/FileAPI/#file-constructor"> >+<link rel="author" title="Benjamin C. Wiley Sittler" >+ href="mailto:bsittler@chromium.org"> >+<script src="/resources/testharness.js"></script> >+<script src="/resources/testharnessreport.js"></script> >+<script src="../support/send-file-form-helper.js"></script> >+<script> >+'use strict'; >+ >+formPostFileUploadTest({ >+ fileNameSource: 'ASCII', >+ fileBaseName: 'file-for-upload-in-form.txt', >+ formEncoding: 'windows-1252', >+ expectedEncodedBaseName: 'file-for-upload-in-form.txt', >+}); >+ >+formPostFileUploadTest({ >+ fileNameSource: 'x-user-defined', >+ fileBaseName: 'file-for-upload-in-form-\uF7F0\uF793\uF783\uF7A0.txt', >+ formEncoding: 'windows-1252', >+ expectedEncodedBaseName: ( >+ 'file-for-upload-in-form-.txt'), >+}); >+ >+formPostFileUploadTest({ >+ fileNameSource: 'windows-1252', >+ fileBaseName: 'file-for-upload-in-form-â˺ðŸËâ.txt', >+ formEncoding: 'windows-1252', >+ expectedEncodedBaseName: 'file-for-upload-in-form-âºð.txt', >+}); >+ >+formPostFileUploadTest({ >+ fileNameSource: 'JIS X 0201 and JIS X 0208', >+ fileBaseName: 'file-for-upload-in-form-â æâ .txt', >+ formEncoding: 'windows-1252', >+ expectedEncodedBaseName: 'file-for-upload-in-form-★星★.txt', >+}); >+ >+formPostFileUploadTest({ >+ fileNameSource: 'Unicode', >+ fileBaseName: 'file-for-upload-in-form-âºð.txt', >+ formEncoding: 'windows-1252', >+ expectedEncodedBaseName: 'file-for-upload-in-form-☺😂.txt', >+}); >+ >+formPostFileUploadTest({ >+ fileNameSource: 'Unicode', >+ fileBaseName: `file-for-upload-in-form-${kTestChars}.txt`, >+ formEncoding: 'windows-1252', >+ expectedEncodedBaseName: `file-for-upload-in-form-${ >+ kTestFallbackWindows1252 >+ }.txt`, >+}); >+ >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/FileAPI/file/send-file-form-x-user-defined.tentative-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/FileAPI/file/send-file-form-x-user-defined.tentative-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..2a23123d225912e55bc3d0fee5f0e809d5bcfe6b >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/FileAPI/file/send-file-form-x-user-defined.tentative-expected.txt >@@ -0,0 +1,8 @@ >+ >+FAIL Upload file-for-upload-in-form.txt (ASCII) in x-user-defined form promise_test: Unhandled rejection with value: object "TypeError: function is not a constructor (evaluating 'new DataTransfer')" >+FAIL Upload file-for-upload-in-form-ï°ïïï .txt (x-user-defined) in x-user-defined form promise_test: Unhandled rejection with value: object "TypeError: function is not a constructor (evaluating 'new DataTransfer')" >+FAIL Upload file-for-upload-in-form-â˺ðŸËâ.txt (windows-1252) in x-user-defined form promise_test: Unhandled rejection with value: object "TypeError: function is not a constructor (evaluating 'new DataTransfer')" >+FAIL Upload file-for-upload-in-form-â æâ .txt (JIS X 0201 and JIS X 0208) in x-user-defined form promise_test: Unhandled rejection with value: object "TypeError: function is not a constructor (evaluating 'new DataTransfer')" >+FAIL Upload file-for-upload-in-form-âºð.txt (Unicode) in x-user-defined form promise_test: Unhandled rejection with value: object "TypeError: function is not a constructor (evaluating 'new DataTransfer')" >+FAIL Upload file-for-upload-in-form-ABC~â¾Â¥â¤・ã»â¢â·â¼â æðæâ â¼Â·ââ¢ã»ï½¥Â¤âÂ¥â¾~XYZ.txt (Unicode) in x-user-defined form promise_test: Unhandled rejection with value: object "TypeError: function is not a constructor (evaluating 'new DataTransfer')" >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/FileAPI/file/send-file-form-x-user-defined.tentative.html b/LayoutTests/imported/w3c/web-platform-tests/FileAPI/file/send-file-form-x-user-defined.tentative.html >new file mode 100644 >index 0000000000000000000000000000000000000000..072e3bb1e02ea0ccc0e5442c1cae316acb40ce30 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/FileAPI/file/send-file-form-x-user-defined.tentative.html >@@ -0,0 +1,70 @@ >+<!DOCTYPE html> >+<meta charset="utf-8"> >+<title>Upload files in x-user-defined form (tentative)</title> >+<!-- >+ NOTE: This test is tentative because encoding for filename >+ characters unrepresentable in the form charset is not yet >+ standardized. >+ --> >+<link rel="help" >+ href="https://github.com/whatwg/html/issues/3223"> >+<link rel="help" >+ href="https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#multipart-form-data"> >+<link rel="help" >+ href="https://html.spec.whatwg.org/multipage/dnd.html#datatransferitemlist"> >+<link rel="help" >+ href="https://w3c.github.io/FileAPI/#file-constructor"> >+<link rel="author" title="Benjamin C. Wiley Sittler" >+ href="mailto:bsittler@chromium.org"> >+<script src="/resources/testharness.js"></script> >+<script src="/resources/testharnessreport.js"></script> >+<script src="../support/send-file-form-helper.js"></script> >+<script> >+'use strict'; >+ >+formPostFileUploadTest({ >+ fileNameSource: 'ASCII', >+ fileBaseName: 'file-for-upload-in-form.txt', >+ formEncoding: 'x-user-defined', >+ expectedEncodedBaseName: 'file-for-upload-in-form.txt', >+}); >+ >+formPostFileUploadTest({ >+ fileNameSource: 'x-user-defined', >+ fileBaseName: 'file-for-upload-in-form-\uF7F0\uF793\uF783\uF7A0.txt', >+ formEncoding: 'x-user-defined', >+ expectedEncodedBaseName: 'file-for-upload-in-form-ð .txt', >+}); >+ >+formPostFileUploadTest({ >+ fileNameSource: 'windows-1252', >+ fileBaseName: 'file-for-upload-in-form-â˺ðŸËâ.txt', >+ formEncoding: 'x-user-defined', >+ expectedEncodedBaseName: ('file-for-upload-in-form-' + >+ '☺😂.txt'), >+}); >+ >+formPostFileUploadTest({ >+ fileNameSource: 'JIS X 0201 and JIS X 0208', >+ fileBaseName: 'file-for-upload-in-form-â æâ .txt', >+ formEncoding: 'x-user-defined', >+ expectedEncodedBaseName: 'file-for-upload-in-form-★星★.txt', >+}); >+ >+formPostFileUploadTest({ >+ fileNameSource: 'Unicode', >+ fileBaseName: 'file-for-upload-in-form-âºð.txt', >+ formEncoding: 'x-user-defined', >+ expectedEncodedBaseName: 'file-for-upload-in-form-☺😂.txt', >+}); >+ >+formPostFileUploadTest({ >+ fileNameSource: 'Unicode', >+ fileBaseName: `file-for-upload-in-form-${kTestChars}.txt`, >+ formEncoding: 'x-user-defined', >+ expectedEncodedBaseName: `file-for-upload-in-form-${ >+ kTestFallbackXUserDefined >+ }.txt`, >+}); >+ >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/FileAPI/file/send-file-form.html b/LayoutTests/imported/w3c/web-platform-tests/FileAPI/file/send-file-form.html >new file mode 100644 >index 0000000000000000000000000000000000000000..baa8d4286c5789c55168cebf5496982b20d06083 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/FileAPI/file/send-file-form.html >@@ -0,0 +1,25 @@ >+<!DOCTYPE html> >+<meta charset="utf-8"> >+<title>Upload ASCII-named file in UTF-8 form</title> >+<link rel="help" >+ href="https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#multipart-form-data"> >+<link rel="help" >+ href="https://html.spec.whatwg.org/multipage/dnd.html#datatransferitemlist"> >+<link rel="help" >+ href="https://w3c.github.io/FileAPI/#file-constructor"> >+<link rel="author" title="Benjamin C. Wiley Sittler" >+ href="mailto:bsittler@chromium.org"> >+<script src="/resources/testharness.js"></script> >+<script src="/resources/testharnessreport.js"></script> >+<script src="../support/send-file-form-helper.js"></script> >+<script> >+'use strict'; >+ >+formPostFileUploadTest({ >+ fileNameSource: 'ASCII', >+ fileBaseName: 'file-for-upload-in-form.txt', >+ formEncoding: 'UTF-8', >+ expectedEncodedBaseName: 'file-for-upload-in-form.txt', >+}); >+ >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/FileAPI/historical.https-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/FileAPI/historical.https-expected.txt >index 432b314af3ae4b980345667a23e0be008d7406f9..51c65c500b85efee9c68c01f3953f437b1876040 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/FileAPI/historical.https-expected.txt >+++ b/LayoutTests/imported/w3c/web-platform-tests/FileAPI/historical.https-expected.txt >@@ -2,10 +2,14 @@ > PASS "toNativeLineEndings" should not be supported > FAIL "FileError" should not be supported assert_false: expected false got true > PASS "FileException" should not be supported >+PASS "FileHandle" should not be supported >+PASS "FileRequest" should not be supported >+PASS "MutableFile" should not be supported > PASS Blob should not support slice prefixed > PASS BlobBuilder should not be supported. > PASS createFor method should not be supported > PASS Blob.close() should not be supported >+PASS File's lastModifiedDate should not be supported > PASS Service worker test setup > FAIL "FileReaderSync" should not be supported in service workers assert_false: expected false got true > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/FileAPI/historical.https.html b/LayoutTests/imported/w3c/web-platform-tests/FileAPI/historical.https.html >index 9d78b5690fbbe7a377874e59473d32d654445310..4f841f1763945946a4e2445a85a23b5d4326c386 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/FileAPI/historical.https.html >+++ b/LayoutTests/imported/w3c/web-platform-tests/FileAPI/historical.https.html >@@ -10,17 +10,20 @@ > <body> > <div id="log"></div> > <script> >- test(function() { >- assert_false('toNativeLineEndings' in window); >- }, '"toNativeLineEndings" should not be supported'); >+ var removedFromWindow = [ >+ 'toNativeLineEndings', >+ 'FileError', >+ 'FileException', >+ 'FileHandle', >+ 'FileRequest', >+ 'MutableFile', >+ ]; > >- test(function() { >- assert_false('FileError' in window); >- }, '"FileError" should not be supported'); >- >- test(function() { >- assert_false('FileException' in window); >- }, '"FileException" should not be supported'); >+ removedFromWindow.forEach(function(name) { >+ test(function() { >+ assert_false(name in window); >+ }, '"' + name + '" should not be supported'); >+ }); > > test(function() { > var b = new Blob(); >@@ -50,9 +53,13 @@ > assert_false('isClosed' in Blob.prototype, 'isClosed in Blob.prototype'); > }, 'Blob.close() should not be supported'); > >- // Only add service worker test if service workers are actually supported. >- if (navigator.serviceWorker) >- service_worker_test('support/historical-serviceworker.js', 'Service worker test setup'); >+ test(() => { >+ const f = new File([], ""); >+ assert_false("lastModifiedDate" in f); >+ assert_false("lastModifiedDate" in File.prototype); >+ }, "File's lastModifiedDate should not be supported"); >+ >+ service_worker_test('support/historical-serviceworker.js', 'Service worker test setup'); > </script> > </body> > </html> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/FileAPI/reading-data-section/FileReader-multiple-reads-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/FileAPI/reading-data-section/FileReader-multiple-reads-expected.txt >index 551b602ee41fac49dea6407ec34f86c255549959..349419822e7a356758e2f9722d3d8126d9717733 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/FileAPI/reading-data-section/FileReader-multiple-reads-expected.txt >+++ b/LayoutTests/imported/w3c/web-platform-tests/FileAPI/reading-data-section/FileReader-multiple-reads-expected.txt >@@ -4,4 +4,5 @@ PASS test FileReader InvalidStateError exception for readAsDataURL > PASS test FileReader InvalidStateError exception for readAsArrayBuffer > PASS test FileReader InvalidStateError exception in onloadstart event for readAsArrayBuffer > PASS test FileReader no InvalidStateError exception in loadend event handler for readAsArrayBuffer >+FAIL test abort and restart in onloadstart event for readAsText The object is in an invalid state. > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/FileAPI/reading-data-section/FileReader-multiple-reads.html b/LayoutTests/imported/w3c/web-platform-tests/FileAPI/reading-data-section/FileReader-multiple-reads.html >index ca04f3c1819e88e74a4c2c4f8a738ad79321c544..310fa85a00d02732265f2b1c9c02f1c6dbc2504d 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/FileAPI/reading-data-section/FileReader-multiple-reads.html >+++ b/LayoutTests/imported/w3c/web-platform-tests/FileAPI/reading-data-section/FileReader-multiple-reads.html >@@ -70,4 +70,20 @@ async_test(function() { > reader.readAsArrayBuffer(blob_1) > assert_equals(reader.readyState, FileReader.LOADING, "readyState Must be LOADING") > }, 'test FileReader no InvalidStateError exception in loadend event handler for readAsArrayBuffer'); >+ >+async_test(function() { >+ var blob_1 = new Blob([new Uint8Array(0x414141)]); >+ var blob_2 = new Blob(['TEST000000002']); >+ var reader = new FileReader(); >+ reader.onloadstart = this.step_func(function() { >+ reader.abort(); >+ reader.onloadstart = null; >+ reader.onloadend = this.step_func_done(function() { >+ assert_equals('TEST000000002', reader.result); >+ }); >+ reader.readAsText(blob_2); >+ }); >+ reader.readAsText(blob_1); >+}, 'test abort and restart in onloadstart event for readAsText'); >+ > </script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/FileAPI/reading-data-section/filereader_readAsBinaryString-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/FileAPI/reading-data-section/filereader_readAsBinaryString-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..e8bb2ab3a8982742333e86ec55488d303a8ba12a >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/FileAPI/reading-data-section/filereader_readAsBinaryString-expected.txt >@@ -0,0 +1,3 @@ >+ >+FAIL FileAPI Test: filereader_readAsBinaryString assert_equals: expected 1 but got 2 >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/FileAPI/reading-data-section/filereader_readAsBinaryString.html b/LayoutTests/imported/w3c/web-platform-tests/FileAPI/reading-data-section/filereader_readAsBinaryString.html >new file mode 100644 >index 0000000000000000000000000000000000000000..b550e4d0a96dc7e407e960be1bf43b5115037907 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/FileAPI/reading-data-section/filereader_readAsBinaryString.html >@@ -0,0 +1,32 @@ >+<!DOCTYPE html> >+<meta charset="utf-8"> >+<title>FileAPI Test: filereader_readAsBinaryString</title> >+<link rel="author" title="Intel" href="http://www.intel.com"> >+<link rel="help" href="https://w3c.github.io/FileAPI/#readAsBinaryString"> >+<script src="/resources/testharness.js"></script> >+<script src="/resources/testharnessreport.js"></script> >+<script> >+ >+async_test(t => { >+ const blob = new Blob(["Ï"]); >+ const reader = new FileReader(); >+ >+ reader.onload = t.step_func_done(() => { >+ assert_equals(typeof reader.result, "string", "The result is string"); >+ assert_equals(reader.result.length, 2, "The result length is 2"); >+ assert_equals(reader.result, "\xcf\x83", "The result is \xcf\x83"); >+ assert_equals(reader.readyState, reader.DONE); >+ }); >+ >+ reader.onloadstart = t.step_func(() => { >+ assert_equals(reader.readyState, reader.LOADING); >+ }); >+ >+ reader.onprogress = t.step_func(() => { >+ assert_equals(reader.readyState, reader.LOADING); >+ }); >+ >+ reader.readAsBinaryString(blob); >+}); >+ >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/FileAPI/reading-data-section/w3c-import.log b/LayoutTests/imported/w3c/web-platform-tests/FileAPI/reading-data-section/w3c-import.log >index d6b9800cf722f74d32a53a2d3884baafb44052df..760e26223da47552bcb711bd517b95bd1b40ad8c 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/FileAPI/reading-data-section/w3c-import.log >+++ b/LayoutTests/imported/w3c/web-platform-tests/FileAPI/reading-data-section/w3c-import.log >@@ -20,6 +20,7 @@ List of files: > /LayoutTests/imported/w3c/web-platform-tests/FileAPI/reading-data-section/filereader_abort.html > /LayoutTests/imported/w3c/web-platform-tests/FileAPI/reading-data-section/filereader_error.html > /LayoutTests/imported/w3c/web-platform-tests/FileAPI/reading-data-section/filereader_readAsArrayBuffer.html >+/LayoutTests/imported/w3c/web-platform-tests/FileAPI/reading-data-section/filereader_readAsBinaryString.html > /LayoutTests/imported/w3c/web-platform-tests/FileAPI/reading-data-section/filereader_readAsDataURL.html > /LayoutTests/imported/w3c/web-platform-tests/FileAPI/reading-data-section/filereader_readAsText.html > /LayoutTests/imported/w3c/web-platform-tests/FileAPI/reading-data-section/filereader_readystate.html >diff --git a/LayoutTests/imported/w3c/web-platform-tests/FileAPI/support/send-file-form-helper.js b/LayoutTests/imported/w3c/web-platform-tests/FileAPI/support/send-file-form-helper.js >new file mode 100644 >index 0000000000000000000000000000000000000000..a7522c7b08ebc2451637e91dbd6a07040af4939d >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/FileAPI/support/send-file-form-helper.js >@@ -0,0 +1,249 @@ >+'use strict'; >+ >+// Rationale for this particular test character sequence, which is >+// used in filenames and also in file contents: >+// >+// - ABC~ ensures the string starts with something we can read to >+// ensure it is from the correct source; ~ is used because even >+// some 1-byte otherwise-ASCII-like parts of ISO-2022-JP >+// interpret it differently. >+// - â¾Â¥ are inside a single-byte range of ISO-2022-JP and help >+// diagnose problems due to filesystem encoding or locale >+// - â is inside IBM437 and helps diagnose problems due to filesystem >+// encoding or locale >+// - ¤ is inside Latin-1 and helps diagnose problems due to >+// filesystem encoding or locale; it is also the "simplest" case >+// needing substitution in ISO-2022-JP >+// - ï½¥ is inside a single-byte range of ISO-2022-JP in some variants >+// and helps diagnose problems due to filesystem encoding or locale; >+// on the web it is distinct when decoding but unified when encoding >+// - ã» is inside a double-byte range of ISO-2022-JP and helps >+// diagnose problems due to filesystem encoding or locale >+// - ⢠is inside Windows-1252 and helps diagnose problems due to >+// filesystem encoding or locale and also ensures these aren't >+// accidentally turned into e.g. control codes >+// - â is inside IBM437 and helps diagnose problems due to filesystem >+// encoding or locale >+// - · is inside Latin-1 and helps diagnose problems due to >+// filesystem encoding or locale and also ensures HTML named >+// character references (e.g. ·) are not used >+// - â¼ is inside IBM437 shadowing C0 and helps diagnose problems due to >+// filesystem encoding or locale and also ensures these aren't >+// accidentally turned into e.g. control codes >+// - â is inside ISO-2022-JP on a non-Kanji page and makes correct >+// output easier to spot >+// - æ is inside ISO-2022-JP on a Kanji page and makes correct >+// output easier to spot >+// - ð is outside the BMP and makes incorrect surrogate pair >+// substitution detectable and ensures substitutions work >+// correctly immediately after Kanji 2-byte ISO-2022-JP >+// - æ repeated here ensures the correct codec state is used >+// after a non-BMP substitution >+// - â repeated here also makes correct output easier to spot >+// - â¼ is inside IBM437 shadowing C0 and helps diagnose problems due to >+// filesystem encoding or locale and also ensures these aren't >+// accidentally turned into e.g. control codes and also ensures >+// substitutions work correctly immediately after non-Kanji >+// 2-byte ISO-2022-JP >+// - · is inside Latin-1 and helps diagnose problems due to >+// filesystem encoding or locale and also ensures HTML named >+// character references (e.g. ·) are not used >+// - â is inside IBM437 and helps diagnose problems due to filesystem >+// encoding or locale >+// - ⢠is inside Windows-1252 and again helps diagnose problems >+// due to filesystem encoding or locale >+// - ã» is inside a double-byte range of ISO-2022-JP and helps >+// diagnose problems due to filesystem encoding or locale >+// - ï½¥ is inside a single-byte range of ISO-2022-JP in some variants >+// and helps diagnose problems due to filesystem encoding or locale; >+// on the web it is distinct when decoding but unified when encoding >+// - ¤ is inside Latin-1 and helps diagnose problems due to >+// filesystem encoding or locale; again it is a "simple" >+// substitution case >+// - â is inside IBM437 and helps diagnose problems due to filesystem >+// encoding or locale >+// - ¥⾠are inside a single-byte range of ISO-2022-JP and help >+// diagnose problems due to filesystem encoding or locale >+// - ~XYZ ensures earlier errors don't lead to misencoding of >+// simple ASCII >+// >+// Overall the near-symmetry makes common I18N mistakes like >+// off-by-1-after-non-BMP easier to spot. All the characters >+// are also allowed in Windows Unicode filenames. >+const kTestChars = 'ABC~â¾Â¥â¤・ã»â¢â·â¼â æðæâ â¼Â·ââ¢ã»ï½¥Â¤âÂ¥â¾~XYZ'; >+ >+// NOTE: The expected interpretation of ISO-2022-JP according to >+// https://encoding.spec.whatwg.org/#iso-2022-jp-encoder unifies >+// single-byte and double-byte katakana. >+const kTestFallbackIso2022jp = >+ ('ABC~\x1B(J~\\â¤\x1B$B!&!&\x1B(Bâ¢â·â¼\x1B$B!z@1\x1B(Bð' + >+ '\x1B$B@1!z\x1B(Bâ¼Â·ââ¢\x1B$B!&!&\x1B(B¤â\x1B(J\\~\x1B(B~XYZ').replace( >+ /[^\0-\x7F]/gu, >+ x => `&#${x.codePointAt(0)};`); >+ >+// NOTE: \uFFFD is used here to replace Windows-1252 bytes to match >+// how we will see them in the reflected POST bytes in a frame using >+// UTF-8 byte interpretation. The bytes will actually be intact, but >+// this code cannot tell and does not really care. >+const kTestFallbackWindows1252 = >+ 'ABC~â¾\xA5â\xA4ï½¥ã»\x95â\xB7â¼â æðæâ â¼\xB7â\x95ã»ï½¥\xA4â\xA5â¾~XYZ'.replace( >+ /[^\0-\xFF]/gu, >+ x => `&#${x.codePointAt(0)};`).replace(/[\x80-\xFF]/g, '\uFFFD'); >+ >+const kTestFallbackXUserDefined = >+ kTestChars.replace(/[^\0-\x7F]/gu, x => `&#${x.codePointAt(0)};`); >+ >+// formPostFileUploadTest - verifies multipart upload structure and >+// numeric character reference replacement for filenames, field names, >+// and field values. >+// >+// Uses /fetch/api/resources/echo-content.py to echo the upload >+// POST with UTF-8 byte interpretation, leading to the "UTF-8 goggles" >+// behavior documented below for expectedEncodedBaseName when non- >+// UTF-8-compatible byte sequences appear in the formEncoding-encoded >+// uploaded data. >+// >+// Fields in the parameter object: >+// >+// - fileNameSource: purely explanatory and gives a clue about which >+// character encoding is the source for the non-7-bit-ASCII parts of >+// the fileBaseName, or Unicode if no smaller-than-Unicode source >+// contains all the characters. Used in the test name. >+// - fileBaseName: the not-necessarily-just-7-bit-ASCII file basename >+// used for the constructed test file. Used in the test name. >+// - formEncoding: the acceptCharset of the form used to submit the >+// test file. Used in the test name. >+// - expectedEncodedBaseName: the expected formEncoding-encoded >+// version of fileBaseName with unencodable characters replaced by >+// numeric character references and non-7-bit-ASCII bytes seen >+// through UTF-8 goggles; subsequences not interpretable as UTF-8 >+// have each byte represented here by \uFFFD REPLACEMENT CHARACTER. >+const formPostFileUploadTest = ({ >+ fileNameSource, >+ fileBaseName, >+ formEncoding, >+ expectedEncodedBaseName, >+}) => { >+ promise_test(async testCase => { >+ >+ if (document.readyState !== 'complete') { >+ await new Promise(resolve => addEventListener('load', resolve)); >+ } >+ >+ const formTargetFrame = Object.assign(document.createElement('iframe'), { >+ name: 'formtargetframe', >+ }); >+ document.body.append(formTargetFrame); >+ testCase.add_cleanup(() => { >+ document.body.removeChild(formTargetFrame); >+ }); >+ >+ const form = Object.assign(document.createElement('form'), { >+ acceptCharset: formEncoding, >+ action: '/fetch/api/resources/echo-content.py', >+ method: 'POST', >+ enctype: 'multipart/form-data', >+ target: formTargetFrame.name, >+ }); >+ document.body.append(form); >+ testCase.add_cleanup(() => { >+ document.body.removeChild(form); >+ }); >+ >+ // Used to verify that the browser agrees with the test about >+ // which form charset is used. >+ form.append(Object.assign(document.createElement('input'), { >+ type: 'hidden', >+ name: '_charset_', >+ })); >+ >+ // Used to verify that the browser agrees with the test about >+ // field value replacement and encoding independently of file system >+ // idiosyncracies. >+ form.append(Object.assign(document.createElement('input'), { >+ type: 'hidden', >+ name: 'filename', >+ value: fileBaseName, >+ })); >+ >+ // Same, but with name and value reversed to ensure field names >+ // get the same treatment. >+ form.append(Object.assign(document.createElement('input'), { >+ type: 'hidden', >+ name: fileBaseName, >+ value: 'filename', >+ })); >+ >+ const fileInput = Object.assign(document.createElement('input'), { >+ type: 'file', >+ name: 'file', >+ }); >+ form.append(fileInput); >+ >+ // Removes c:\fakepath\ or other pseudofolder and returns just the >+ // final component of filePath; allows both / and \ as segment >+ // delimiters. >+ const baseNameOfFilePath = filePath => filePath.split(/[\/\\]/).pop(); >+ await new Promise(resolve => { >+ const dataTransfer = new DataTransfer; >+ dataTransfer.items.add( >+ new File([kTestChars], fileBaseName, {type: 'text/plain'})); >+ fileInput.files = dataTransfer.files; >+ // For historical reasons .value will be prefixed with >+ // c:\fakepath\, but the basename should match the file name >+ // exposed through the newer .files[0].name API. This check >+ // verifies that assumption. >+ assert_equals( >+ fileInput.files[0].name, >+ baseNameOfFilePath(fileInput.value), >+ `The basename of the field's value should match its files[0].name`); >+ form.submit(); >+ formTargetFrame.onload = resolve; >+ }); >+ >+ const formDataText = formTargetFrame.contentDocument.body.textContent; >+ const formDataLines = formDataText.split('\n'); >+ if (formDataLines.length && !formDataLines[formDataLines.length - 1]) { >+ --formDataLines.length; >+ } >+ assert_greater_than( >+ formDataLines.length, >+ 2, >+ `${fileBaseName}: multipart form data must have at least 3 lines: ${ >+ JSON.stringify(formDataText) >+ }`); >+ const boundary = formDataLines[0]; >+ assert_equals( >+ formDataLines[formDataLines.length - 1], >+ boundary + '--', >+ `${fileBaseName}: multipart form data must end with ${boundary}--: ${ >+ JSON.stringify(formDataText) >+ }`); >+ const expectedText = [ >+ boundary, >+ 'Content-Disposition: form-data; name="_charset_"', >+ '', >+ formEncoding, >+ boundary, >+ 'Content-Disposition: form-data; name="filename"', >+ '', >+ expectedEncodedBaseName, >+ boundary, >+ `Content-Disposition: form-data; name="${expectedEncodedBaseName}"`, >+ '', >+ 'filename', >+ boundary, >+ `Content-Disposition: form-data; name="file"; ` + >+ `filename="${expectedEncodedBaseName}"`, >+ 'Content-Type: text/plain', >+ '', >+ kTestChars, >+ boundary + '--', >+ ].join('\n'); >+ assert_true( >+ formDataText.startsWith(expectedText), >+ `Unexpected multipart-shaped form data received:\n${ >+ formDataText >+ }\nExpected:\n${expectedText}`); >+ }, `Upload ${fileBaseName} (${fileNameSource}) in ${formEncoding} form`); >+}; >diff --git a/LayoutTests/imported/w3c/web-platform-tests/FileAPI/support/w3c-import.log b/LayoutTests/imported/w3c/web-platform-tests/FileAPI/support/w3c-import.log >index 9966e38de1ac8d72c96263bc8080ba7f71f8ed1c..5345a3145fb893a6ba9011aff15daa11bde45472 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/FileAPI/support/w3c-import.log >+++ b/LayoutTests/imported/w3c/web-platform-tests/FileAPI/support/w3c-import.log >@@ -18,5 +18,6 @@ List of files: > /LayoutTests/imported/w3c/web-platform-tests/FileAPI/support/document-domain-setter.sub.html > /LayoutTests/imported/w3c/web-platform-tests/FileAPI/support/historical-serviceworker.js > /LayoutTests/imported/w3c/web-platform-tests/FileAPI/support/incumbent.sub.html >+/LayoutTests/imported/w3c/web-platform-tests/FileAPI/support/send-file-form-helper.js > /LayoutTests/imported/w3c/web-platform-tests/FileAPI/support/upload.txt > /LayoutTests/imported/w3c/web-platform-tests/FileAPI/support/url-origin.html >diff --git a/LayoutTests/imported/w3c/web-platform-tests/FileAPI/unicode-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/FileAPI/unicode-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..96e8ab4209223aecb6cede963f3c2a10b93ce520 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/FileAPI/unicode-expected.txt >@@ -0,0 +1,6 @@ >+ >+FAIL Test that strings are not NFC normalized by Blob constructor assert_equals: String should not be normalized expected "á½¹" but got "Ï" >+FAIL Test that strings are not NFC normalized by File constructor assert_equals: String should not be normalized expected "á½¹" but got "Ï" >+PASS Test that unpaired surrogates are replaced by Blob constructor >+PASS Test that unpaired surrogates are replaced by File constructor >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/FileAPI/unicode.html b/LayoutTests/imported/w3c/web-platform-tests/FileAPI/unicode.html >new file mode 100644 >index 0000000000000000000000000000000000000000..ce3e3579d7c2c74c27d907ccd25c953588ef87f2 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/FileAPI/unicode.html >@@ -0,0 +1,46 @@ >+<!DOCTYPE html> >+<meta charset="utf-8"> >+<title>Blob/Unicode interaction: normalization and encoding</title> >+<script src="/resources/testharness.js"></script> >+<script src="/resources/testharnessreport.js"></script> >+<script> >+'use strict'; >+ >+const OMICRON_WITH_OXIA = '\u1F79'; // NFC normalized to U+3CC >+const CONTAINS_UNPAIRED_SURROGATES = 'abc\uDC00def\uD800ghi'; >+const REPLACED = 'abc\uFFFDdef\uFFFDghi'; >+ >+function readBlobAsPromise(blob) { >+ return new Promise((resolve, reject) => { >+ const reader = new FileReader(); >+ reader.readAsText(blob); >+ reader.onload = () => resolve(reader.result); >+ reader.onerror = () => reject(reader.error); >+ }); >+} >+ >+promise_test(async t => { >+ const blob = new Blob([OMICRON_WITH_OXIA]); >+ const result = await readBlobAsPromise(blob); >+ assert_equals(result, OMICRON_WITH_OXIA, 'String should not be normalized'); >+}, 'Test that strings are not NFC normalized by Blob constructor'); >+ >+promise_test(async t => { >+ const file = new File([OMICRON_WITH_OXIA], 'name'); >+ const result = await readBlobAsPromise(file); >+ assert_equals(result, OMICRON_WITH_OXIA, 'String should not be normalized'); >+}, 'Test that strings are not NFC normalized by File constructor'); >+ >+promise_test(async t => { >+ const blob = new Blob([CONTAINS_UNPAIRED_SURROGATES]); >+ const result = await readBlobAsPromise(blob); >+ assert_equals(result, REPLACED, 'Unpaired surrogates should be replaced.'); >+}, 'Test that unpaired surrogates are replaced by Blob constructor'); >+ >+promise_test(async t => { >+ const file = new File([CONTAINS_UNPAIRED_SURROGATES], 'name'); >+ const result = await readBlobAsPromise(file); >+ assert_equals(result, REPLACED, 'Unpaired surrogates should be replaced.'); >+}, 'Test that unpaired surrogates are replaced by File constructor'); >+ >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/FileAPI/url/resources/w3c-import.log b/LayoutTests/imported/w3c/web-platform-tests/FileAPI/url/resources/w3c-import.log >new file mode 100644 >index 0000000000000000000000000000000000000000..a1bdb1b424da6ab1ddea7e37e68c53dec391b320 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/FileAPI/url/resources/w3c-import.log >@@ -0,0 +1,21 @@ >+The tests in this directory were imported from the W3C repository. >+Do NOT modify these tests directly in WebKit. >+Instead, create a pull request on the WPT github: >+ https://github.com/w3c/web-platform-tests >+ >+Then run the Tools/Scripts/import-w3c-tests in WebKit to reimport >+ >+Do NOT modify or remove this file. >+ >+------------------------------------------------------------------------ >+Properties requiring vendor prefixes: >+None >+Property values requiring vendor prefixes: >+None >+------------------------------------------------------------------------ >+List of files: >+/LayoutTests/imported/w3c/web-platform-tests/FileAPI/url/resources/create-helper.html >+/LayoutTests/imported/w3c/web-platform-tests/FileAPI/url/resources/create-helper.js >+/LayoutTests/imported/w3c/web-platform-tests/FileAPI/url/resources/fetch-tests.js >+/LayoutTests/imported/w3c/web-platform-tests/FileAPI/url/resources/revoke-helper.html >+/LayoutTests/imported/w3c/web-platform-tests/FileAPI/url/resources/revoke-helper.js >diff --git a/LayoutTests/imported/w3c/web-platform-tests/FileAPI/url/url-in-tags-revoke.window.js b/LayoutTests/imported/w3c/web-platform-tests/FileAPI/url/url-in-tags-revoke.window.js >new file mode 100644 >index 0000000000000000000000000000000000000000..f624f188fa82473d8ac5858eb46d850a9c9f4831 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/FileAPI/url/url-in-tags-revoke.window.js >@@ -0,0 +1,99 @@ >+async_test(t => { >+ const run_result = 'test_frame_OK'; >+ const blob_contents = '<!doctype html>\n<meta charset="utf-8">\n' + >+ '<script>window.test_result = "' + run_result + '";</script>'; >+ const blob = new Blob([blob_contents], {type: 'text/html'}); >+ const url = URL.createObjectURL(blob); >+ >+ const frame = document.createElement('iframe'); >+ frame.setAttribute('src', url); >+ frame.setAttribute('style', 'display:none;'); >+ document.body.appendChild(frame); >+ URL.revokeObjectURL(url); >+ >+ frame.onload = t.step_func_done(() => { >+ assert_equals(frame.contentWindow.test_result, run_result); >+ }); >+}, 'Fetching a blob URL immediately before revoking it works in an iframe.'); >+ >+async_test(t => { >+ const run_result = 'test_frame_OK'; >+ const blob_contents = '<!doctype html>\n<meta charset="utf-8">\n' + >+ '<script>window.test_result = "' + run_result + '";</script>'; >+ const blob = new Blob([blob_contents], {type: 'text/html'}); >+ const url = URL.createObjectURL(blob); >+ >+ const frame = document.createElement('iframe'); >+ frame.setAttribute('src', '/common/blank.html'); >+ frame.setAttribute('style', 'display:none;'); >+ document.body.appendChild(frame); >+ >+ frame.onload = t.step_func(() => { >+ frame.contentWindow.location = url; >+ URL.revokeObjectURL(url); >+ frame.onload = t.step_func_done(() => { >+ assert_equals(frame.contentWindow.test_result, run_result); >+ }); >+ }); >+}, 'Fetching a blob URL immediately before revoking it works in an iframe navigation.'); >+ >+async_test(t => { >+ const run_result = 'test_frame_OK'; >+ const blob_contents = '<!doctype html>\n<meta charset="utf-8">\n' + >+ '<script>window.test_result = "' + run_result + '";</script>'; >+ const blob = new Blob([blob_contents], {type: 'text/html'}); >+ const url = URL.createObjectURL(blob); >+ const win = window.open(url); >+ URL.revokeObjectURL(url); >+ add_completion_callback(() => { win.close(); }); >+ >+ win.onload = t.step_func_done(() => { >+ assert_equals(win.test_result, run_result); >+ }); >+}, 'Opening a blob URL in a new window immediately before revoking it works.'); >+ >+function receive_message_on_channel(t, channel_name) { >+ const channel = new BroadcastChannel(channel_name); >+ return new Promise(resolve => { >+ channel.addEventListener('message', t.step_func(e => { >+ resolve(e.data); >+ })); >+ }); >+} >+ >+function window_contents_for_channel(channel_name) { >+ return '<!doctype html>\n' + >+ '<script>\n' + >+ 'new BroadcastChannel("' + channel_name + '").postMessage("foobar");\n' + >+ 'self.close();\n' + >+ '</script>'; >+} >+ >+async_test(t => { >+ const channel_name = 'noopener-window-test'; >+ const blob = new Blob([window_contents_for_channel(channel_name)], {type: 'text/html'}); >+ receive_message_on_channel(t, channel_name).then(t.step_func_done(t => { >+ assert_equals(t, 'foobar'); >+ })); >+ const url = URL.createObjectURL(blob); >+ const win = window.open(); >+ win.opener = null; >+ win.location = url; >+ URL.revokeObjectURL(url); >+}, 'Opening a blob URL in a noopener about:blank window immediately before revoking it works.'); >+ >+async_test(t => { >+ const run_result = 'test_script_OK'; >+ const blob_contents = 'window.script_test_result = "' + run_result + '";'; >+ const blob = new Blob([blob_contents]); >+ const url = URL.createObjectURL(blob); >+ >+ const e = document.createElement('script'); >+ e.setAttribute('src', url); >+ e.onload = t.step_func_done(() => { >+ assert_equals(window.script_test_result, run_result); >+ }); >+ >+ document.body.appendChild(e); >+ URL.revokeObjectURL(url); >+}, 'Fetching a blob URL immediately before revoking it works in <script> tags.'); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/FileAPI/url/url-in-tags.window.js b/LayoutTests/imported/w3c/web-platform-tests/FileAPI/url/url-in-tags.window.js >index 364d33bb89d5e6bc4325e4097fdab1c52e19f7a4..f20b3599013bf5b4f305549f6dc85e5756a00908 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/FileAPI/url/url-in-tags.window.js >+++ b/LayoutTests/imported/w3c/web-platform-tests/FileAPI/url/url-in-tags.window.js >@@ -31,7 +31,6 @@ async_test(t => { > }, 'Blob URLs can be used in iframes, and are treated same origin'); > > async_test(t => { >- const scroll_position = 5000; > const blob_contents = '<!doctype html>\n<meta charset="utf-8">\n' + > '<style>body { margin: 0; } .block { height: 5000px; }</style>\n' + > '<body>\n' + >@@ -43,8 +42,7 @@ async_test(t => { > const frame = document.createElement('iframe'); > frame.setAttribute('src', url + '#block2'); > document.body.appendChild(frame); >- >- frame.onload = t.step_func_done(() => { >+ frame.contentWindow.onscroll = t.step_func_done(() => { > assert_equals(frame.contentWindow.scrollY, 5000); > }); > }, 'Blob URL fragment is implemented.'); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/FileAPI/url/url-reload.window.js b/LayoutTests/imported/w3c/web-platform-tests/FileAPI/url/url-reload.window.js >new file mode 100644 >index 0000000000000000000000000000000000000000..d333b3a74aa82c58fafc5b3e5b0fab40730d13f1 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/FileAPI/url/url-reload.window.js >@@ -0,0 +1,36 @@ >+function blob_url_reload_test(t, revoke_before_reload) { >+ const run_result = 'test_frame_OK'; >+ const blob_contents = '<!doctype html>\n<meta charset="utf-8">\n' + >+ '<script>window.test_result = "' + run_result + '";</script>'; >+ const blob = new Blob([blob_contents], {type: 'text/html'}); >+ const url = URL.createObjectURL(blob); >+ >+ const frame = document.createElement('iframe'); >+ frame.setAttribute('src', url); >+ frame.setAttribute('style', 'display:none;'); >+ document.body.appendChild(frame); >+ >+ frame.onload = t.step_func(() => { >+ if (revoke_before_reload) >+ URL.revokeObjectURL(url); >+ assert_equals(frame.contentWindow.test_result, run_result); >+ frame.contentWindow.test_result = null; >+ frame.onload = t.step_func_done(() => { >+ assert_equals(frame.contentWindow.test_result, run_result); >+ }); >+ // Slight delay before reloading to ensure revoke actually has had a chance >+ // to be processed. >+ t.step_timeout(() => { >+ frame.contentWindow.location.reload(); >+ }, 250); >+ }); >+} >+ >+async_test(t => { >+ blob_url_reload_test(t, false); >+}, 'Reloading a blob URL succeeds.'); >+ >+ >+async_test(t => { >+ blob_url_reload_test(t, true); >+}, 'Reloading a blob URL succeeds even if the URL was revoked.'); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/FileAPI/url/w3c-import.log b/LayoutTests/imported/w3c/web-platform-tests/FileAPI/url/w3c-import.log >index dee6448b84911c545f47e50f56bdc45b4b233c66..fbf21df501109d6fe449812df714d50708ca9db4 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/FileAPI/url/w3c-import.log >+++ b/LayoutTests/imported/w3c/web-platform-tests/FileAPI/url/w3c-import.log >@@ -22,6 +22,7 @@ List of files: > /LayoutTests/imported/w3c/web-platform-tests/FileAPI/url/url-in-tags-revoke.window.js > /LayoutTests/imported/w3c/web-platform-tests/FileAPI/url/url-in-tags.window.js > /LayoutTests/imported/w3c/web-platform-tests/FileAPI/url/url-lifetime.html >+/LayoutTests/imported/w3c/web-platform-tests/FileAPI/url/url-reload.window.js > /LayoutTests/imported/w3c/web-platform-tests/FileAPI/url/url-with-fetch.any.js > /LayoutTests/imported/w3c/web-platform-tests/FileAPI/url/url-with-xhr.any.js > /LayoutTests/imported/w3c/web-platform-tests/FileAPI/url/url_xmlhttprequest_img-expected.html >diff --git a/LayoutTests/imported/w3c/web-platform-tests/FileAPI/w3c-import.log b/LayoutTests/imported/w3c/web-platform-tests/FileAPI/w3c-import.log >index 5c92457d6c2c9e4e7dfeffa26774002a91245e0e..56bff5ee2af081626eab09546d8862f269755dd5 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/FileAPI/w3c-import.log >+++ b/LayoutTests/imported/w3c/web-platform-tests/FileAPI/w3c-import.log >@@ -20,3 +20,4 @@ List of files: > /LayoutTests/imported/w3c/web-platform-tests/FileAPI/historical.https.html > /LayoutTests/imported/w3c/web-platform-tests/FileAPI/idlharness.html > /LayoutTests/imported/w3c/web-platform-tests/FileAPI/idlharness.worker.js >+/LayoutTests/imported/w3c/web-platform-tests/FileAPI/unicode.html >diff --git a/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/bigint_value-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/bigint_value-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..9d20c69a33a54eb0f1bb1679e188ef7ee013bf57 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/bigint_value-expected.txt >@@ -0,0 +1,4 @@ >+CONSOLE MESSAGE: line 41: SyntaxError: No identifiers allowed directly after numeric literal >+ >+FAIL IndexedDB: BigInt keys and values SyntaxError: No identifiers allowed directly after numeric literal >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/bigint_value.htm b/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/bigint_value.htm >new file mode 100644 >index 0000000000000000000000000000000000000000..589eeabe6c6e6798406759e2d40fd28be2645473 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/bigint_value.htm >@@ -0,0 +1,72 @@ >+<!DOCTYPE html> >+<meta charset="utf-8"> >+<title>IndexedDB: BigInt keys and values</title> >+<script src="/resources/testharness.js"></script> >+<script src="/resources/testharnessreport.js"></script> >+<script src="support.js"></script> >+ >+<script> >+// BigInt and BigInt objects are supported in serialization, per >+// https://github.com/whatwg/html/pull/3480 >+// This support allows them to be used as IndexedDB values. >+ >+function value_test(value, predicate, name) { >+ async_test(t => { >+ t.step(function() { >+ assert_true(predicate(value), >+ "Predicate should return true for the initial value."); >+ }); >+ >+ createdb(t).onupgradeneeded = t.step_func(e => { >+ e.target.result >+ .createObjectStore("store") >+ .add(value, 1); >+ >+ e.target.onsuccess = t.step_func(e => { >+ e.target.result >+ .transaction("store") >+ .objectStore("store") >+ .get(1) >+ .onsuccess = t.step_func(e => >+ { >+ assert_true(predicate(e.target.result), >+ "Predicate should return true for the deserialized result."); >+ t.done(); >+ }); >+ }); >+ }); >+ }, "BigInts as values in IndexedDB - " + name); >+} >+ >+value_test(1n, >+ x => x === 1n, >+ "primitive BigInt"); >+value_test(Object(1n), >+ x => typeof x === 'object' && >+ x instanceof BigInt && >+ x.valueOf() === 1n, >+ "BigInt object"); >+value_test({val: 1n}, >+ x => x.val === 1n, >+ "primitive BigInt inside object"); >+value_test({val: Object(1n)}, >+ x => x.val.valueOf() === 1n && >+ x.val instanceof BigInt && >+ x.val.valueOf() === 1n, >+ "BigInt object inside object"); >+ >+// However, BigInt is not supported as an IndexedDB key; support >+// has been proposed in the following PR, but that change has not >+// landed at the time this patch was written >+// https://github.com/w3c/IndexedDB/pull/231 >+ >+function invalidKey(key, name) { >+ test(t => { >+ assert_throws("DataError", () => indexedDB.cmp(0, key)); >+ }, "BigInts as keys in IndexedDB - " + name); >+} >+ >+invalidKey(1n, "primitive BigInt"); >+// Still an error even if the IndexedDB patch lands >+invalidKey(Object(1n), "BigInt object"); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/historical-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/historical-expected.txt >index 43d081ed8c948c938bbf886c9a4b20352ecefe90..0a3435defc70d9f83c679d25ae372350792b4271 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/historical-expected.txt >+++ b/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/historical-expected.txt >@@ -11,4 +11,7 @@ PASS "PREV_NO_DUPLICATE" should not be supported on IDBCursor. > PASS "READ_ONLY" should not be supported on IDBTransaction. > PASS "READ_WRITE" should not be supported on IDBTransaction. > PASS "VERSION_CHANGE" should not be supported on IDBTransaction. >+PASS "IDBFileHandle" should not be supported >+PASS "IDBFileRequest" should not be supported >+PASS "IDBMutableFile" should not be supported > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/historical.html b/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/historical.html >index 73d78c816763f2d8ca5ce6c4bc0578963a497537..8e7097eb46fd2e2c1c339e44ef1805b2f8b0fcf7 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/historical.html >+++ b/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/historical.html >@@ -63,4 +63,18 @@ test(function() { > // Replaced circa May 2012 by a DOMString (later, IDBTransactionMode enum). > assert_false('VERSION_CHANGE' in IDBTransaction); > }, '"VERSION_CHANGE" should not be supported on IDBTransaction.'); >+ >+// Gecko-proprietary interfaces. >+var removedFromWindow = [ >+ 'IDBFileHandle', >+ 'IDBFileRequest', >+ 'IDBMutableFile', >+]; >+ >+removedFromWindow.forEach(function(name) { >+ test(function() { >+ assert_false(name in window); >+ }, '"' + name + '" should not be supported'); >+}); >+ > </script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbcursor-iterating-update-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbcursor-iterating-update-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..7e8379d16df0e00677ab9e1d4d4778bf863ec872 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbcursor-iterating-update-expected.txt >@@ -0,0 +1,8 @@ >+CONSOLE MESSAGE: line 2659: Error: assert_equals: Cursor should iterate over 4 records expected 4 but got 2 >+CONSOLE MESSAGE: line 2659: Error: assert_equals: Cursor should iterate over 4 records expected 4 but got 2 >+ >+Harness Error (FAIL), message = Error: assert_equals: Cursor should iterate over 4 records expected 4 but got 2 >+ >+TIMEOUT Calling cursor => cursor.update({}) doesn't affect index iteration Test timed out >+TIMEOUT Calling cursor => cursor.delete() doesn't affect index iteration Test timed out >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbcursor-iterating-update.htm b/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbcursor-iterating-update.htm >new file mode 100644 >index 0000000000000000000000000000000000000000..d2a7b9f01e61afed41f11956482cfc631cd5421a >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbcursor-iterating-update.htm >@@ -0,0 +1,58 @@ >+<!doctype html> >+<meta charset=utf-8> >+<title>IndexedDB: Index iteration with cursor updates/deletes</title> >+<script src="/resources/testharness.js"></script> >+<script src="/resources/testharnessreport.js"></script> >+<script src="support.js"></script> >+<script> >+const objStoreValues = [ >+ {name: 'foo', id: 1}, >+ {name: 'bar', id: 2}, >+ {name: 'foo', id: 3}, >+ {name: 'bar', id: 4}, >+]; >+ >+const objStoreValuesByIndex = [ >+ objStoreValues[1], >+ objStoreValues[3], >+ objStoreValues[0], >+ objStoreValues[2], >+]; >+ >+const functionsThatShouldNotAffectIteration = [ >+ cursor => cursor.update({}), >+ cursor => cursor.delete(), >+]; >+ >+functionsThatShouldNotAffectIteration.forEach((func) => indexeddb_test( >+ (t, db) => { >+ const objStore = db.createObjectStore('items', {autoIncrement: true}); >+ objStore.createIndex('name', 'name', {unique: false}); >+ objStoreValues.forEach((value) => objStore.add(value)); >+ }, >+ (t, db) => { >+ const txn = db.transaction('items', 'readwrite'); >+ const objStore = txn.objectStore('items'); >+ const nameIndex = objStore.index('name'); >+ >+ const cursorValues = []; >+ nameIndex.openCursor().onsuccess = (evt) => { >+ const cursor = evt.target.result; >+ if (cursor) { >+ func(cursor); >+ cursorValues.push(cursor.value); >+ cursor.continue(); >+ } else { >+ assert_equals(cursorValues.length, 4, >+ `Cursor should iterate over 4 records`); >+ >+ cursorValues.forEach((value, i) => { >+ assert_object_equals(value, objStoreValuesByIndex[i]); >+ }); >+ t.done(); >+ } >+ } >+ }, >+ `Calling ${func} doesn't affect index iteration` >+)); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/interleaved-cursors-common.js b/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/interleaved-cursors-common.js >new file mode 100644 >index 0000000000000000000000000000000000000000..a76ec528c99c72767a7889df1d7d7df582485ce2 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/interleaved-cursors-common.js >@@ -0,0 +1,188 @@ >+// Infrastructure shared by interleaved-cursors-{small,large}.html >+ >+// Number of objects that each iterator goes over. >+const itemCount = 10; >+ >+// Ratio of small objects to large objects. >+const largeObjectRatio = 5; >+ >+// Size of large objects. This should exceed the size of a block in the storage >+// method underlying the browser's IndexedDB implementation. For example, this >+// needs to exceed the LevelDB block size on Chrome, and the SQLite block size >+// on Firefox. >+const largeObjectSize = 48 * 1024; >+ >+function objectKey(cursorIndex, itemIndex) { >+ return `${cursorIndex}-key-${itemIndex}`; >+} >+ >+function objectValue(cursorIndex, itemIndex) { >+ if ((cursorIndex * itemCount + itemIndex) % largeObjectRatio === 0) { >+ // We use a typed array (as opposed to a string) because IndexedDB >+ // implementations may serialize strings using UTF-8 or UTF-16, yielding >+ // larger IndexedDB entries than we'd expect. It's very unlikely that an >+ // IndexedDB implementation would use anything other than the raw buffer to >+ // serialize a typed array. >+ const buffer = new Uint8Array(largeObjectSize); >+ >+ // Some IndexedDB implementations, like LevelDB, compress their data blocks >+ // before storing them to disk. We use a simple 32-bit xorshift PRNG, which >+ // should be sufficient to foil any fast generic-purpose compression scheme. >+ >+ // 32-bit xorshift - the seed can't be zero >+ let state = 1000 + (cursorIndex * itemCount + itemIndex); >+ >+ for (let i = 0; i < largeObjectSize; ++i) { >+ state ^= state << 13; >+ state ^= state >> 17; >+ state ^= state << 5; >+ buffer[i] = state & 0xff; >+ } >+ >+ return buffer; >+ } >+ return [cursorIndex, 'small', itemIndex]; >+} >+ >+// Writes the objects to be read by one cursor. Returns a promise that resolves >+// when the write completes. >+// >+// We want to avoid creating a large transaction, because that is outside the >+// test's scope, and it's a bad practice. So we break up the writes across >+// multiple transactions. For simplicity, each transaction writes all the >+// objects that will be read by a cursor. >+function writeCursorObjects(database, cursorIndex) { >+ return new Promise((resolve, reject) => { >+ const transaction = database.transaction('cache', 'readwrite'); >+ transaction.onabort = () => { reject(transaction.error); }; >+ >+ const store = transaction.objectStore('cache'); >+ for (let i = 0; i < itemCount; ++i) { >+ store.put({ >+ key: objectKey(cursorIndex, i), value: objectValue(cursorIndex, i)}); >+ } >+ transaction.oncomplete = resolve; >+ }); >+} >+ >+// Returns a promise that resolves when the store has been populated. >+function populateTestStore(testCase, database, cursorCount) { >+ let promiseChain = Promise.resolve(); >+ >+ for (let i = 0; i < cursorCount; ++i) >+ promiseChain = promiseChain.then(() => writeCursorObjects(database, i)); >+ >+ return promiseChain; >+} >+ >+// Reads cursors in an interleaved fashion, as shown below. >+// >+// Given N cursors, each of which points to the beginning of a K-item sequence, >+// the following accesses will be made. >+// >+// OC(i) = open cursor i >+// RD(i, j) = read result of cursor i, which should be at item j >+// CC(i) = continue cursor i >+// | = wait for onsuccess on the previous OC or CC >+// >+// OC(1) | RD(1, 1) OC(2) | RD(2, 1) OC(3) | ... | RD(n-1, 1) CC(n) | >+// RD(n, 1) CC(1) | RD(1, 2) CC(2) | RD(2, 2) CC(3) | ... | RD(n-1, 2) CC(n) | >+// RD(n, 2) CC(1) | RD(1, 3) CC(2) | RD(2, 3) CC(3) | ... | RD(n-1, 3) CC(n) | >+// ... >+// RD(n, k-1) CC(1) | RD(1, k) CC(2) | RD(2, k) CC(3) | ... | RD(n-1, k) CC(n) | >+// RD(n, k) done >+function interleaveCursors(testCase, store, cursorCount) { >+ return new Promise((resolve, reject) => { >+ // The cursors used for iteration are stored here so each cursor's onsuccess >+ // handler can call continue() on the next cursor. >+ const cursors = []; >+ >+ // The results of IDBObjectStore.openCursor() calls are stored here so we >+ // we can change the requests' onsuccess handler after every >+ // IDBCursor.continue() call. >+ const requests = []; >+ >+ const checkCursorState = (cursorIndex, itemIndex) => { >+ const cursor = cursors[cursorIndex]; >+ assert_equals(cursor.key, objectKey(cursorIndex, itemIndex)); >+ assert_equals(cursor.value.key, objectKey(cursorIndex, itemIndex)); >+ assert_equals( >+ cursor.value.value.join('-'), >+ objectValue(cursorIndex, itemIndex).join('-')); >+ }; >+ >+ const openCursor = (cursorIndex, callback) => { >+ const request = store.openCursor( >+ IDBKeyRange.lowerBound(objectKey(cursorIndex, 0))); >+ requests[cursorIndex] = request; >+ >+ request.onsuccess = testCase.step_func(() => { >+ const cursor = request.result; >+ cursors[cursorIndex] = cursor; >+ checkCursorState(cursorIndex, 0); >+ callback(); >+ }); >+ request.onerror = event => reject(request.error); >+ }; >+ >+ const readItemFromCursor = (cursorIndex, itemIndex, callback) => { >+ const request = requests[cursorIndex]; >+ request.onsuccess = testCase.step_func(() => { >+ const cursor = request.result; >+ cursors[cursorIndex] = cursor; >+ checkCursorState(cursorIndex, itemIndex); >+ callback(); >+ }); >+ >+ const cursor = cursors[cursorIndex]; >+ cursor.continue(); >+ }; >+ >+ // We open all the cursors one at a time, then cycle through the cursors and >+ // call continue() on each of them. This access pattern causes maximal >+ // trashing to an LRU cursor cache. Eviction scheme aside, any cache will >+ // have to evict some cursors, and this access pattern verifies that the >+ // cache correctly restores the state of evicted cursors. >+ const steps = []; >+ for (let cursorIndex = 0; cursorIndex < cursorCount; ++cursorIndex) >+ steps.push(openCursor.bind(null, cursorIndex)); >+ for (let itemIndex = 1; itemIndex < itemCount; ++itemIndex) { >+ for (let cursorIndex = 0; cursorIndex < cursorCount; ++cursorIndex) >+ steps.push(readItemFromCursor.bind(null, cursorIndex, itemIndex)); >+ } >+ >+ const runStep = (stepIndex) => { >+ if (stepIndex === steps.length) { >+ resolve(); >+ return; >+ } >+ steps[stepIndex](() => { runStep(stepIndex + 1); }); >+ }; >+ runStep(0); >+ }); >+} >+ >+function cursorTest(cursorCount) { >+ promise_test(testCase => { >+ return createDatabase(testCase, (database, transaction) => { >+ const store = database.createObjectStore('cache', >+ { keyPath: 'key', autoIncrement: true }); >+ }).then(database => { >+ return populateTestStore(testCase, database, cursorCount).then( >+ () => database); >+ }).then(database => { >+ database.close(); >+ }).then(() => { >+ return openDatabase(testCase); >+ }).then(database => { >+ const transaction = database.transaction('cache', 'readonly'); >+ transaction.onabort = () => { reject(transaction.error); }; >+ >+ const store = transaction.objectStore('cache'); >+ return interleaveCursors(testCase, store, cursorCount).then( >+ () => database); >+ }).then(database => { >+ database.close(); >+ }); >+ }, `${cursorCount} cursors`); >+} >diff --git a/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/interleaved-cursors-large-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/interleaved-cursors-large-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..60e441b91d938071f75b2fc9b712803cb936e919 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/interleaved-cursors-large-expected.txt >@@ -0,0 +1,3 @@ >+ >+PASS 250 cursors >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/interleaved-cursors-large.html b/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/interleaved-cursors-large.html >new file mode 100644 >index 0000000000000000000000000000000000000000..6f4e440e1dac8c6389d0882b314a10ea84ad9af8 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/interleaved-cursors-large.html >@@ -0,0 +1,12 @@ >+<!doctype html> >+<meta charset="utf-8"> >+<meta name="timeout" content="long"> >+<title>IndexedDB: Interleaved iteration of multiple cursors</title> >+<link rel="author" href="pwnall@chromium.org" title="Victor Costan"> >+<script src="/resources/testharness.js"></script> >+<script src="/resources/testharnessreport.js"></script> >+<script src="support-promises.js"></script> >+<script src="interleaved-cursors-common.js"></script> >+<script> >+cursorTest(250); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/interleaved-cursors-small-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/interleaved-cursors-small-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..67798bd5c9b97fede4abaf453c069f1dd0893c47 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/interleaved-cursors-small-expected.txt >@@ -0,0 +1,5 @@ >+ >+PASS 1 cursors >+PASS 10 cursors >+PASS 100 cursors >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/interleaved-cursors-small.html b/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/interleaved-cursors-small.html >new file mode 100644 >index 0000000000000000000000000000000000000000..a4c47771782f61c8ef17398e66d57e8d03db5830 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/interleaved-cursors-small.html >@@ -0,0 +1,14 @@ >+<!doctype html> >+<meta charset="utf-8"> >+<meta name="timeout" content="long"> >+<title>IndexedDB: Interleaved iteration of multiple cursors</title> >+<link rel="author" href="pwnall@chromium.org" title="Victor Costan"> >+<script src="/resources/testharness.js"></script> >+<script src="/resources/testharnessreport.js"></script> >+<script src="support-promises.js"></script> >+<script src="interleaved-cursors-common.js"></script> >+<script> >+cursorTest(1); >+cursorTest(10); >+cursorTest(100); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/keypath-special-identifiers-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/keypath-special-identifiers-expected.txt >index be90589cf5c90b96658d6ec845a04ea42c10b449..40cc840a1cf7fa5c57d683dd37089517c2ba7cf6 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/keypath-special-identifiers-expected.txt >+++ b/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/keypath-special-identifiers-expected.txt >@@ -5,5 +5,4 @@ PASS Type: Blob, identifier: size > PASS Type: Blob, identifier: type > PASS Type: File, identifier: name > PASS Type: File, identifier: lastModified >-FAIL Type: File, identifier: lastModifiedDate Provided data is inadequate. > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/keypath-special-identifiers.htm b/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/keypath-special-identifiers.htm >index 331169b5c9033d466b93b4a6f6517822ac213bd8..cb64d0b708eb3f97d99b0b754fcdf9bd12394821 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/keypath-special-identifiers.htm >+++ b/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/keypath-special-identifiers.htm >@@ -38,11 +38,6 @@ > property: 'lastModified', > instance: new File([''], '', {lastModified: 123}), > }, >- { >- type: 'File', >- property: 'lastModifiedDate', >- instance: new File([''], '', {lastModified: 123}), >- }, > ].forEach(function(testcase) { > indexeddb_test( > (t, db) => { >diff --git a/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/keypath.htm b/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/keypath.htm >index b59d614e8a9b47f300c4924e96284a38ed9b4f20..4985712a215c28b6a798e789a7a384a4719760b5 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/keypath.htm >+++ b/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/keypath.htm >@@ -125,7 +125,7 @@ > "[Blob.length, Blob.type]"); > } > >- // File.name and File.lastModifiedDate is not testable automatically >+ // File.name and File.lastModified is not testable automatically > > keypath(['name', 'type'], > [ { name: "orange", type: "fruit" }, { name: "orange", type: ["telecom", "french"] } ], >diff --git a/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/support.js b/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/support.js >index ac9c2f3241941a892e46cfdeb1463a7c05c8ebd5..5edbdacbcc7d0cf27d0e3330198b55d50540345e 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/support.js >+++ b/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/support.js >@@ -12,7 +12,7 @@ add_completion_callback(function(tests) > if(tests[i].db) > { > tests[i].db.close(); >- window.indexedDB.deleteDatabase(tests[i].db.name); >+ self.indexedDB.deleteDatabase(tests[i].db.name); > } > } > }); >@@ -43,9 +43,9 @@ function createdb_for_multiple_tests(dbname, version) { > dbname = (dbname ? dbname : "testdb-" + new Date().getTime() + Math.random() ); > > if (version) >- rq_open = window.indexedDB.open(dbname, version); >+ rq_open = self.indexedDB.open(dbname, version); > else >- rq_open = window.indexedDB.open(dbname); >+ rq_open = self.indexedDB.open(dbname); > > function auto_fail(evt, current_test) { > /* Fail handlers, if we haven't set on/whatever/, don't >@@ -107,7 +107,7 @@ function assert_key_equals(actual, expected, description) { > function indexeddb_test(upgrade_func, open_func, description, options) { > async_test(function(t) { > options = Object.assign({upgrade_will_abort: false}, options); >- var dbname = document.location + '-' + t.name; >+ var dbname = location + '-' + t.name; > var del = indexedDB.deleteDatabase(dbname); > del.onerror = t.unreached_func('deleteDatabase should succeed'); > var open = indexedDB.open(dbname, 1); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/w3c-import.log b/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/w3c-import.log >index 836fd054392034e415707d2742e91d8e279585a2..836ba1d14939730138d3768c284a3a7470213148 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/w3c-import.log >+++ b/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/w3c-import.log >@@ -17,6 +17,7 @@ List of files: > /LayoutTests/imported/w3c/web-platform-tests/IndexedDB/OWNERS > /LayoutTests/imported/w3c/web-platform-tests/IndexedDB/README.md > /LayoutTests/imported/w3c/web-platform-tests/IndexedDB/abort-in-initial-upgradeneeded.html >+/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/bigint_value.htm > /LayoutTests/imported/w3c/web-platform-tests/IndexedDB/bindings-inject-key.html > /LayoutTests/imported/w3c/web-platform-tests/IndexedDB/clone-before-keypath-eval.html > /LayoutTests/imported/w3c/web-platform-tests/IndexedDB/close-in-upgradeneeded.html >@@ -48,6 +49,7 @@ List of files: > /LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbcursor-direction-objectstore-keyrange.htm > /LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbcursor-direction-objectstore.htm > /LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbcursor-direction.htm >+/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbcursor-iterating-update.htm > /LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbcursor-key.htm > /LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbcursor-primarykey.htm > /LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbcursor-request-source.html >@@ -316,6 +318,9 @@ List of files: > /LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbworker.js > /LayoutTests/imported/w3c/web-platform-tests/IndexedDB/index_sort_order.htm > /LayoutTests/imported/w3c/web-platform-tests/IndexedDB/interfaces.any.js >+/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/interleaved-cursors-common.js >+/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/interleaved-cursors-large.html >+/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/interleaved-cursors-small.html > /LayoutTests/imported/w3c/web-platform-tests/IndexedDB/key-conversion-exceptions.htm > /LayoutTests/imported/w3c/web-platform-tests/IndexedDB/key_invalid.htm > /LayoutTests/imported/w3c/web-platform-tests/IndexedDB/key_valid.html >@@ -364,4 +369,5 @@ List of files: > /LayoutTests/imported/w3c/web-platform-tests/IndexedDB/upgrade-transaction-lifecycle-user-aborted.html > /LayoutTests/imported/w3c/web-platform-tests/IndexedDB/value.htm > /LayoutTests/imported/w3c/web-platform-tests/IndexedDB/value_recursive.htm >+/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/wasm-module-value.html > /LayoutTests/imported/w3c/web-platform-tests/IndexedDB/writer-starvation.htm >diff --git a/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/wasm-module-value-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/wasm-module-value-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..3558542d3c787cdd7ad47e1851b43bf522f6476e >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/wasm-module-value-expected.txt >@@ -0,0 +1,5 @@ >+ >+FAIL WebAssembly module as an IndexedDB value Failed to store record in an IDBObjectStore: An object could not be cloned. >+FAIL WebAssembly module in a JavaScript object IndexedDB value Failed to store record in an IDBObjectStore: An object could not be cloned. >+FAIL WebAssembly module in an IndexedDB value with an inline key Failed to store record in an IDBObjectStore: An object could not be cloned. >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/wasm-module-value.html b/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/wasm-module-value.html >new file mode 100644 >index 0000000000000000000000000000000000000000..9fcfd780b8e59ff49e54406fbc4106e683c76025 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/wasm-module-value.html >@@ -0,0 +1,109 @@ >+<!doctype html> >+<meta charset="utf8"> >+<meta name="timeout" content="long"> >+<title>IndexedDB: WebAssembly module values</title> >+<link rel="help" href="https://w3c.github.io/IndexedDB/"> >+<link rel="help" href="https://webassembly.github.io/spec/"> >+<link rel="author" href="pwnall@chromium.org" title="Victor Costan"> >+<script src="/resources/testharness.js"></script> >+<script src="/resources/testharnessreport.js"></script> >+<script src="support-promises.js"></script> >+<script> >+'use strict'; >+ >+// Binary representation for a WASM module that exports an "inc" function. >+// >+// This test covers storing WASM modules in IndexedDB. Its failure should only >+// be debugged if WASM specification tests pass. To this end, the test does not >+// use the WASM module builder helpers, trading off WASM debuggability in return >+// for having the WASM wire bytes listed explicitly in the test body. Having the >+// wire bytes spelled out can be helpful when debugging IndexedDB failures. >+let wasm_module_bytes = new Uint8Array([ >+ 0x00, 0x61, 0x73, 0x6d, // Magic. >+ 0x01, 0x00, 0x00, 0x00, // Version. >+ 0x01, 0x06, 0x01, // Type section - 6 bytes, 1 entry >+ 0x60, 0x01, 0x7f, 0x01, 0x7f, // Type 0. Function: (i32) -> (i32) >+ 0x03, 0x02, 0x01, // Function section - 2 bytes, 1 entry >+ 0x00, // Function 0: Type 0 >+ 0x07, 0x07, 0x01, // Export section - 7 bytes, 1 entry >+ 0x03, 0x69, 0x6e, 0x63, // Export 1. { name: "inc" >+ 0x00, 0x00, // desc: function 0 } >+ 0x0a, 0x09, 0x01, // Code section: 9 bytes, 1 entry >+ 0x07, 0x00, // Function 1: 7 code bytes, 0 locals >+ 0x20, 0x00, // getlocal 0 >+ 0x41, 0x01, // i32.const 1 >+ 0x6a, // i32.add >+ 0x0b, // end >+]); >+ >+promise_test(async testCase => { >+ const wasm_module = await WebAssembly.compile(wasm_module_bytes.buffer); >+ >+ const database = await createDatabase(testCase, (database, transaction) => { >+ const store = database.createObjectStore('store'); >+ store.put(wasm_module, 'key1'); >+ }); >+ >+ const result = await new Promise((resolve, reject) => { >+ const transaction = database.transaction(['store'], 'readonly'); >+ const store = transaction.objectStore('store'); >+ const request = store.get('key1'); >+ request.onsuccess = (event) => resolve(event.target.result); >+ request.onerror = (event) => reject(event.target.error); >+ }); >+ >+ database.close(); >+ >+ const instance = await WebAssembly.instantiate(result); >+ assert_equals( >+ instance.exports['inc'](42), 43, 'inc should increment its argument'); >+}, 'WebAssembly module as an IndexedDB value'); >+ >+promise_test(async testCase => { >+ const wasm_module = await WebAssembly.compile(wasm_module_bytes.buffer); >+ >+ const database = await createDatabase(testCase, (database, transaction) => { >+ const store = database.createObjectStore('store'); >+ store.put({ module: wasm_module }, 'key1'); >+ }); >+ >+ const result = await new Promise((resolve, reject) => { >+ const transaction = database.transaction(['store'], 'readonly'); >+ const store = transaction.objectStore('store'); >+ const request = store.get('key1'); >+ request.onsuccess = (event) => resolve(event.target.result); >+ request.onerror = (event) => reject(event.target.error); >+ }); >+ >+ database.close(); >+ >+ const instance = await WebAssembly.instantiate(result.module); >+ assert_equals( >+ instance.exports['inc'](42), 43, 'inc should increment its argument'); >+}, 'WebAssembly module in a JavaScript object IndexedDB value'); >+ >+promise_test(async testCase => { >+ const wasm_module = await WebAssembly.compile(wasm_module_bytes.buffer); >+ >+ const database = await createDatabase(testCase, (database, transaction) => { >+ const store = database.createObjectStore('store', { keyPath: 'key' }); >+ store.put({ key: 'key1', module: wasm_module }); >+ }); >+ >+ const result = await new Promise((resolve, reject) => { >+ const transaction = database.transaction(['store'], 'readonly'); >+ const store = transaction.objectStore('store'); >+ const request = store.get('key1'); >+ request.onsuccess = (event) => resolve(event.target.result); >+ request.onerror = (event) => reject(event.target.error); >+ }); >+ >+ database.close(); >+ >+ assert_equals('key1', result.key); >+ const instance = await WebAssembly.instantiate(result.module); >+ assert_equals( >+ instance.exports['inc'](42), 43, 'inc should increment its argument'); >+}, 'WebAssembly module in an IndexedDB value with an inline key'); >+ >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-CBC.https.any-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-CBC.https.any-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..6ba2c901e27d4f0a39139ef702b94ad21d9a623b >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-CBC.https.any-expected.txt >@@ -0,0 +1,740 @@ >+ >+PASS Bad algorithm: generateKey(AES, false, [decrypt]) >+PASS Bad algorithm: generateKey(AES, true, [decrypt]) >+PASS Bad algorithm: generateKey(AES, RED, [decrypt]) >+PASS Bad algorithm: generateKey(AES, 7, [decrypt]) >+PASS Bad algorithm: generateKey(AES, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey(AES, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey(AES, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey(AES, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey(AES, false, [sign]) >+PASS Bad algorithm: generateKey(AES, true, [sign]) >+PASS Bad algorithm: generateKey(AES, RED, [sign]) >+PASS Bad algorithm: generateKey(AES, 7, [sign]) >+PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey(AES, false, [deriveBits]) >+PASS Bad algorithm: generateKey(AES, true, [deriveBits]) >+PASS Bad algorithm: generateKey(AES, RED, [deriveBits]) >+PASS Bad algorithm: generateKey(AES, 7, [deriveBits]) >+PASS Bad algorithm: generateKey(AES, false, []) >+PASS Bad algorithm: generateKey(AES, true, []) >+PASS Bad algorithm: generateKey(AES, RED, []) >+PASS Bad algorithm: generateKey(AES, 7, []) >+PASS Bad algorithm: generateKey(AES, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey(AES, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey(AES, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey(AES, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, false, [decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, true, [decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, false, [sign]) >+PASS Bad algorithm: generateKey({name: AES}, true, [sign]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [sign]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [sign]) >+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, false, []) >+PASS Bad algorithm: generateKey({name: AES}, true, []) >+PASS Bad algorithm: generateKey({name: AES}, RED, []) >+PASS Bad algorithm: generateKey({name: AES}, 7, []) >+PASS Bad algorithm: generateKey({name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, []) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, []) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, []) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, []) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, []) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, []) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, []) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, []) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [encrypt, sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [decrypt, encrypt, sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, encrypt, sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, encrypt, sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [decrypt, sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, decrypt, sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, decrypt, sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [encrypt, verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [decrypt, encrypt, verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, encrypt, verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, encrypt, verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [decrypt, verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, decrypt, verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, decrypt, verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [decrypt, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [decrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, decrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, decrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [decrypt, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [decrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, decrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, decrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [encrypt, sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [decrypt, encrypt, sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, encrypt, sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, encrypt, sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [decrypt, sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, decrypt, sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, decrypt, sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [encrypt, verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [decrypt, encrypt, verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, encrypt, verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, encrypt, verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [decrypt, verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, decrypt, verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, decrypt, verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [decrypt, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [decrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, decrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, decrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [decrypt, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [decrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, decrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, decrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [encrypt, sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [decrypt, encrypt, sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, encrypt, sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, encrypt, sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [decrypt, sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, decrypt, sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, decrypt, sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [encrypt, verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [decrypt, encrypt, verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, encrypt, verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, encrypt, verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [decrypt, verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, decrypt, verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, decrypt, verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [decrypt, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [decrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, decrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, decrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [decrypt, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [decrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, decrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, decrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [encrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [encrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [unwrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [unwrapKey, wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [unwrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [unwrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [decrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [decrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [unwrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [unwrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [wrapKey]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [wrapKey]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [unwrapKey, wrapKey]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [unwrapKey, wrapKey]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, []) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, []) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [encrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [encrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [unwrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [unwrapKey, wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [unwrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [unwrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [decrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [decrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [unwrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [unwrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [wrapKey]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [wrapKey]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [unwrapKey, wrapKey]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [unwrapKey, wrapKey]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, []) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, []) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [encrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [encrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [unwrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [unwrapKey, wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [unwrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [unwrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [decrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [decrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [unwrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [unwrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [wrapKey]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [wrapKey]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [unwrapKey, wrapKey]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [unwrapKey, wrapKey]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, []) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, []) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [encrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [encrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [unwrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [unwrapKey, wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [unwrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [unwrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [decrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [decrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [unwrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [unwrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [wrapKey]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [wrapKey]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [unwrapKey, wrapKey]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [unwrapKey, wrapKey]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, []) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, []) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [encrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [encrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [unwrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [unwrapKey, wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [unwrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [unwrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [decrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [decrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [unwrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [unwrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [wrapKey]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [wrapKey]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [unwrapKey, wrapKey]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [unwrapKey, wrapKey]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, []) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, []) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [encrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [encrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [unwrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [unwrapKey, wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [unwrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [unwrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [decrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [decrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [unwrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [unwrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [wrapKey]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [wrapKey]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [unwrapKey, wrapKey]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [unwrapKey, wrapKey]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, []) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, []) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >+PASS Empty usages: generateKey({length: 128, name: AES-CBC}, false, []) >+PASS Empty usages: generateKey({length: 128, name: AES-CBC}, true, []) >+PASS Empty usages: generateKey({length: 192, name: AES-CBC}, false, []) >+PASS Empty usages: generateKey({length: 192, name: AES-CBC}, true, []) >+PASS Empty usages: generateKey({length: 256, name: AES-CBC}, false, []) >+PASS Empty usages: generateKey({length: 256, name: AES-CBC}, true, []) >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-CBC.https.any.html b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-CBC.https.any.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-CBC.https.any.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-CBC.https.any.js b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-CBC.https.any.js >new file mode 100644 >index 0000000000000000000000000000000000000000..19c9fb28b3bc073a9e18e8abed0838f29bd0ce69 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-CBC.https.any.js >@@ -0,0 +1,4 @@ >+// META: timeout=long >+// META: script=../util/helpers.js >+// META: script=failures.js >+run_test(["AES-CBC"]); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-CBC.https.any.worker-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-CBC.https.any.worker-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..6ba2c901e27d4f0a39139ef702b94ad21d9a623b >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-CBC.https.any.worker-expected.txt >@@ -0,0 +1,740 @@ >+ >+PASS Bad algorithm: generateKey(AES, false, [decrypt]) >+PASS Bad algorithm: generateKey(AES, true, [decrypt]) >+PASS Bad algorithm: generateKey(AES, RED, [decrypt]) >+PASS Bad algorithm: generateKey(AES, 7, [decrypt]) >+PASS Bad algorithm: generateKey(AES, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey(AES, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey(AES, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey(AES, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey(AES, false, [sign]) >+PASS Bad algorithm: generateKey(AES, true, [sign]) >+PASS Bad algorithm: generateKey(AES, RED, [sign]) >+PASS Bad algorithm: generateKey(AES, 7, [sign]) >+PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey(AES, false, [deriveBits]) >+PASS Bad algorithm: generateKey(AES, true, [deriveBits]) >+PASS Bad algorithm: generateKey(AES, RED, [deriveBits]) >+PASS Bad algorithm: generateKey(AES, 7, [deriveBits]) >+PASS Bad algorithm: generateKey(AES, false, []) >+PASS Bad algorithm: generateKey(AES, true, []) >+PASS Bad algorithm: generateKey(AES, RED, []) >+PASS Bad algorithm: generateKey(AES, 7, []) >+PASS Bad algorithm: generateKey(AES, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey(AES, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey(AES, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey(AES, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, false, [decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, true, [decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, false, [sign]) >+PASS Bad algorithm: generateKey({name: AES}, true, [sign]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [sign]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [sign]) >+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, false, []) >+PASS Bad algorithm: generateKey({name: AES}, true, []) >+PASS Bad algorithm: generateKey({name: AES}, RED, []) >+PASS Bad algorithm: generateKey({name: AES}, 7, []) >+PASS Bad algorithm: generateKey({name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, []) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, []) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, []) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, []) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, []) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, []) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, []) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, []) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [encrypt, sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [decrypt, encrypt, sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, encrypt, sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, encrypt, sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [decrypt, sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, decrypt, sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, decrypt, sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [encrypt, verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [decrypt, encrypt, verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, encrypt, verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, encrypt, verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [decrypt, verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, decrypt, verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, decrypt, verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [decrypt, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [decrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, decrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, decrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [decrypt, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [decrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, decrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, decrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [encrypt, sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [decrypt, encrypt, sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, encrypt, sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, encrypt, sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [decrypt, sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, decrypt, sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, decrypt, sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [encrypt, verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [decrypt, encrypt, verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, encrypt, verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, encrypt, verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [decrypt, verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, decrypt, verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, decrypt, verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [decrypt, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [decrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, decrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, decrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [decrypt, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [decrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, decrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, decrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [encrypt, sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [decrypt, encrypt, sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, encrypt, sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, encrypt, sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [decrypt, sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, decrypt, sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, decrypt, sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [encrypt, verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [decrypt, encrypt, verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, encrypt, verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, encrypt, verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [decrypt, verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, decrypt, verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, decrypt, verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [decrypt, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [decrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, decrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, decrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [decrypt, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [decrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, decrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, decrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [encrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [encrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [unwrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [unwrapKey, wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [unwrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [unwrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [decrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [decrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [unwrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [unwrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [wrapKey]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [wrapKey]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [unwrapKey, wrapKey]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [unwrapKey, wrapKey]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, []) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, []) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [encrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [encrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [unwrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [unwrapKey, wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [unwrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [unwrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [decrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [decrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [unwrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [unwrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [wrapKey]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [wrapKey]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [unwrapKey, wrapKey]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [unwrapKey, wrapKey]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, []) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, []) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [encrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [encrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [unwrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [unwrapKey, wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [unwrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [unwrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [decrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [decrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [unwrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [unwrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [wrapKey]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [wrapKey]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [unwrapKey, wrapKey]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [unwrapKey, wrapKey]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, []) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, []) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [encrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [encrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [unwrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [unwrapKey, wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [unwrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [unwrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [decrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [decrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [unwrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [unwrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [wrapKey]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [wrapKey]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [unwrapKey, wrapKey]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [unwrapKey, wrapKey]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, []) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, []) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [encrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [encrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [unwrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [unwrapKey, wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [unwrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [unwrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [decrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [decrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [unwrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [unwrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [wrapKey]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [wrapKey]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [unwrapKey, wrapKey]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [unwrapKey, wrapKey]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, []) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, []) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [encrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [encrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [unwrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [unwrapKey, wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [unwrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [unwrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [decrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [decrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [unwrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [unwrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [wrapKey]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [wrapKey]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [unwrapKey, wrapKey]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [unwrapKey, wrapKey]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, []) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, []) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >+PASS Empty usages: generateKey({length: 128, name: AES-CBC}, false, []) >+PASS Empty usages: generateKey({length: 128, name: AES-CBC}, true, []) >+PASS Empty usages: generateKey({length: 192, name: AES-CBC}, false, []) >+PASS Empty usages: generateKey({length: 192, name: AES-CBC}, true, []) >+PASS Empty usages: generateKey({length: 256, name: AES-CBC}, false, []) >+PASS Empty usages: generateKey({length: 256, name: AES-CBC}, true, []) >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-CBC.https.any.worker.html b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-CBC.https.any.worker.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-CBC.https.any.worker.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-CBC.https.worker-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-CBC.https.worker-expected.txt >deleted file mode 100644 >index 6ba2c901e27d4f0a39139ef702b94ad21d9a623b..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-CBC.https.worker-expected.txt >+++ /dev/null >@@ -1,740 +0,0 @@ >- >-PASS Bad algorithm: generateKey(AES, false, [decrypt]) >-PASS Bad algorithm: generateKey(AES, true, [decrypt]) >-PASS Bad algorithm: generateKey(AES, RED, [decrypt]) >-PASS Bad algorithm: generateKey(AES, 7, [decrypt]) >-PASS Bad algorithm: generateKey(AES, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey(AES, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey(AES, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey(AES, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey(AES, false, [sign]) >-PASS Bad algorithm: generateKey(AES, true, [sign]) >-PASS Bad algorithm: generateKey(AES, RED, [sign]) >-PASS Bad algorithm: generateKey(AES, 7, [sign]) >-PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey(AES, false, [deriveBits]) >-PASS Bad algorithm: generateKey(AES, true, [deriveBits]) >-PASS Bad algorithm: generateKey(AES, RED, [deriveBits]) >-PASS Bad algorithm: generateKey(AES, 7, [deriveBits]) >-PASS Bad algorithm: generateKey(AES, false, []) >-PASS Bad algorithm: generateKey(AES, true, []) >-PASS Bad algorithm: generateKey(AES, RED, []) >-PASS Bad algorithm: generateKey(AES, 7, []) >-PASS Bad algorithm: generateKey(AES, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey(AES, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey(AES, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey(AES, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, false, [decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, true, [decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, false, [sign]) >-PASS Bad algorithm: generateKey({name: AES}, true, [sign]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [sign]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [sign]) >-PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, false, []) >-PASS Bad algorithm: generateKey({name: AES}, true, []) >-PASS Bad algorithm: generateKey({name: AES}, RED, []) >-PASS Bad algorithm: generateKey({name: AES}, 7, []) >-PASS Bad algorithm: generateKey({name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, []) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, []) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, []) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, []) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, []) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, []) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, []) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, []) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [encrypt, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, encrypt, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, encrypt, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [decrypt, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, decrypt, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, decrypt, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [encrypt, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, encrypt, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, encrypt, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [decrypt, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, decrypt, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, decrypt, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [decrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, decrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, decrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [decrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, decrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, decrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [encrypt, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, encrypt, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, encrypt, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [decrypt, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, decrypt, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, decrypt, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [encrypt, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, encrypt, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, encrypt, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [decrypt, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, decrypt, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, decrypt, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [decrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, decrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, decrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [decrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, decrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, decrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [encrypt, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, encrypt, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, encrypt, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [decrypt, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, decrypt, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, decrypt, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [encrypt, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, encrypt, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, encrypt, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [decrypt, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, decrypt, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, decrypt, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [decrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, decrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, decrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [decrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, decrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, decrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [decrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [decrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, []) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, []) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [decrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [decrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, []) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, []) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [decrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [decrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, []) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, []) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [decrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [decrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, []) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, []) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [decrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [decrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, []) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, []) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [decrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [decrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, []) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, []) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Empty usages: generateKey({length: 128, name: AES-CBC}, false, []) >-PASS Empty usages: generateKey({length: 128, name: AES-CBC}, true, []) >-PASS Empty usages: generateKey({length: 192, name: AES-CBC}, false, []) >-PASS Empty usages: generateKey({length: 192, name: AES-CBC}, true, []) >-PASS Empty usages: generateKey({length: 256, name: AES-CBC}, false, []) >-PASS Empty usages: generateKey({length: 256, name: AES-CBC}, true, []) >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-CBC.https.worker.html b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-CBC.https.worker.html >deleted file mode 100644 >index 2382913528e693b3a5d56c660a45060980b548c3..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-CBC.https.worker.html >+++ /dev/null >@@ -1 +0,0 @@ >-<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-CBC.https.worker.js b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-CBC.https.worker.js >deleted file mode 100644 >index 7bb3e7f697fd80e9333337ecdbe6285f7776d353..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-CBC.https.worker.js >+++ /dev/null >@@ -1,6 +0,0 @@ >-// META: timeout=long >-importScripts("/resources/testharness.js"); >-importScripts("../util/helpers.js"); >-importScripts("failures.js"); >-run_test(["AES-CBC"]); >-done(); >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-CTR.https.any-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-CTR.https.any-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..9b38fb3329c5a71c0f4aef6f90ce9d0aa142ff03 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-CTR.https.any-expected.txt >@@ -0,0 +1,740 @@ >+ >+PASS Bad algorithm: generateKey(AES, false, [decrypt]) >+PASS Bad algorithm: generateKey(AES, true, [decrypt]) >+PASS Bad algorithm: generateKey(AES, RED, [decrypt]) >+PASS Bad algorithm: generateKey(AES, 7, [decrypt]) >+PASS Bad algorithm: generateKey(AES, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey(AES, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey(AES, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey(AES, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey(AES, false, [sign]) >+PASS Bad algorithm: generateKey(AES, true, [sign]) >+PASS Bad algorithm: generateKey(AES, RED, [sign]) >+PASS Bad algorithm: generateKey(AES, 7, [sign]) >+PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey(AES, false, [deriveBits]) >+PASS Bad algorithm: generateKey(AES, true, [deriveBits]) >+PASS Bad algorithm: generateKey(AES, RED, [deriveBits]) >+PASS Bad algorithm: generateKey(AES, 7, [deriveBits]) >+PASS Bad algorithm: generateKey(AES, false, []) >+PASS Bad algorithm: generateKey(AES, true, []) >+PASS Bad algorithm: generateKey(AES, RED, []) >+PASS Bad algorithm: generateKey(AES, 7, []) >+PASS Bad algorithm: generateKey(AES, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey(AES, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey(AES, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey(AES, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, false, [decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, true, [decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, false, [sign]) >+PASS Bad algorithm: generateKey({name: AES}, true, [sign]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [sign]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [sign]) >+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, false, []) >+PASS Bad algorithm: generateKey({name: AES}, true, []) >+PASS Bad algorithm: generateKey({name: AES}, RED, []) >+PASS Bad algorithm: generateKey({name: AES}, 7, []) >+PASS Bad algorithm: generateKey({name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, []) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, []) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, []) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, []) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, []) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, []) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, []) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, []) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [encrypt, sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [decrypt, encrypt, sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, encrypt, sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, encrypt, sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [decrypt, sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, decrypt, sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, decrypt, sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [encrypt, verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [decrypt, encrypt, verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, encrypt, verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, encrypt, verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [decrypt, verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, decrypt, verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, decrypt, verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [decrypt, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [decrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, decrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, decrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [decrypt, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [decrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, decrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, decrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [encrypt, sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [decrypt, encrypt, sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, encrypt, sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, encrypt, sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [decrypt, sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, decrypt, sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, decrypt, sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [encrypt, verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [decrypt, encrypt, verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, encrypt, verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, encrypt, verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [decrypt, verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, decrypt, verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, decrypt, verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [decrypt, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [decrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, decrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, decrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [decrypt, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [decrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, decrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, decrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [encrypt, sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [decrypt, encrypt, sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, encrypt, sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, encrypt, sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [decrypt, sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, decrypt, sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, decrypt, sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [encrypt, verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [decrypt, encrypt, verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, encrypt, verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, encrypt, verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [decrypt, verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, decrypt, verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, decrypt, verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [decrypt, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [decrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, decrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, decrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [decrypt, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [decrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, decrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, decrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [encrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [encrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [unwrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [unwrapKey, wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [unwrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [unwrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [decrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [decrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [unwrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [unwrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [wrapKey]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [wrapKey]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [unwrapKey, wrapKey]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [unwrapKey, wrapKey]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, []) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, []) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [encrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [encrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [unwrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [unwrapKey, wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [unwrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [unwrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [decrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [decrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [unwrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [unwrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [wrapKey]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [wrapKey]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [unwrapKey, wrapKey]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [unwrapKey, wrapKey]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, []) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, []) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [encrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [encrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [unwrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [unwrapKey, wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [unwrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [unwrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [decrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [decrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [unwrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [unwrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [wrapKey]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [wrapKey]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [unwrapKey, wrapKey]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [unwrapKey, wrapKey]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, []) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, []) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [encrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [encrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [unwrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [unwrapKey, wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [unwrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [unwrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [decrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [decrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [unwrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [unwrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [wrapKey]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [wrapKey]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [unwrapKey, wrapKey]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [unwrapKey, wrapKey]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, []) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, []) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [encrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [encrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [unwrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [unwrapKey, wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [unwrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [unwrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [decrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [decrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [unwrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [unwrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [wrapKey]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [wrapKey]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [unwrapKey, wrapKey]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [unwrapKey, wrapKey]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, []) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, []) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [encrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [encrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [unwrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [unwrapKey, wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [unwrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [unwrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [decrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [decrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [unwrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [unwrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [wrapKey]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [wrapKey]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [unwrapKey, wrapKey]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [unwrapKey, wrapKey]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, []) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, []) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >+PASS Empty usages: generateKey({length: 128, name: AES-CTR}, false, []) >+PASS Empty usages: generateKey({length: 128, name: AES-CTR}, true, []) >+PASS Empty usages: generateKey({length: 192, name: AES-CTR}, false, []) >+PASS Empty usages: generateKey({length: 192, name: AES-CTR}, true, []) >+PASS Empty usages: generateKey({length: 256, name: AES-CTR}, false, []) >+PASS Empty usages: generateKey({length: 256, name: AES-CTR}, true, []) >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-CTR.https.any.html b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-CTR.https.any.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-CTR.https.any.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-CTR.https.any.js b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-CTR.https.any.js >new file mode 100644 >index 0000000000000000000000000000000000000000..2f8a0b3596f192dd9382a4229634fbd357b7a6ec >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-CTR.https.any.js >@@ -0,0 +1,4 @@ >+// META: timeout=long >+// META: script=../util/helpers.js >+// META: script=failures.js >+run_test(["AES-CTR"]); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-CTR.https.any.worker-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-CTR.https.any.worker-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..9b38fb3329c5a71c0f4aef6f90ce9d0aa142ff03 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-CTR.https.any.worker-expected.txt >@@ -0,0 +1,740 @@ >+ >+PASS Bad algorithm: generateKey(AES, false, [decrypt]) >+PASS Bad algorithm: generateKey(AES, true, [decrypt]) >+PASS Bad algorithm: generateKey(AES, RED, [decrypt]) >+PASS Bad algorithm: generateKey(AES, 7, [decrypt]) >+PASS Bad algorithm: generateKey(AES, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey(AES, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey(AES, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey(AES, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey(AES, false, [sign]) >+PASS Bad algorithm: generateKey(AES, true, [sign]) >+PASS Bad algorithm: generateKey(AES, RED, [sign]) >+PASS Bad algorithm: generateKey(AES, 7, [sign]) >+PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey(AES, false, [deriveBits]) >+PASS Bad algorithm: generateKey(AES, true, [deriveBits]) >+PASS Bad algorithm: generateKey(AES, RED, [deriveBits]) >+PASS Bad algorithm: generateKey(AES, 7, [deriveBits]) >+PASS Bad algorithm: generateKey(AES, false, []) >+PASS Bad algorithm: generateKey(AES, true, []) >+PASS Bad algorithm: generateKey(AES, RED, []) >+PASS Bad algorithm: generateKey(AES, 7, []) >+PASS Bad algorithm: generateKey(AES, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey(AES, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey(AES, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey(AES, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, false, [decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, true, [decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, false, [sign]) >+PASS Bad algorithm: generateKey({name: AES}, true, [sign]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [sign]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [sign]) >+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, false, []) >+PASS Bad algorithm: generateKey({name: AES}, true, []) >+PASS Bad algorithm: generateKey({name: AES}, RED, []) >+PASS Bad algorithm: generateKey({name: AES}, 7, []) >+PASS Bad algorithm: generateKey({name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, []) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, []) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, []) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, []) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, []) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, []) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, []) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, []) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [encrypt, sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [decrypt, encrypt, sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, encrypt, sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, encrypt, sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [decrypt, sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, decrypt, sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, decrypt, sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [encrypt, verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [decrypt, encrypt, verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, encrypt, verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, encrypt, verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [decrypt, verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, decrypt, verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, decrypt, verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [decrypt, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [decrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, decrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, decrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [decrypt, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [decrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, decrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, decrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [encrypt, sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [decrypt, encrypt, sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, encrypt, sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, encrypt, sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [decrypt, sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, decrypt, sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, decrypt, sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [encrypt, verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [decrypt, encrypt, verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, encrypt, verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, encrypt, verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [decrypt, verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, decrypt, verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, decrypt, verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [decrypt, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [decrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, decrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, decrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [decrypt, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [decrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, decrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, decrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [encrypt, sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [decrypt, encrypt, sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, encrypt, sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, encrypt, sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [decrypt, sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, decrypt, sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, decrypt, sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [encrypt, verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [decrypt, encrypt, verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, encrypt, verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, encrypt, verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [decrypt, verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, decrypt, verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, decrypt, verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [decrypt, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [decrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, decrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, decrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [decrypt, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [decrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, decrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, decrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [encrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [encrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [unwrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [unwrapKey, wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [unwrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [unwrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [decrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [decrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [unwrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [unwrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [wrapKey]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [wrapKey]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [unwrapKey, wrapKey]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [unwrapKey, wrapKey]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, []) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, []) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [encrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [encrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [unwrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [unwrapKey, wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [unwrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [unwrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [decrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [decrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [unwrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [unwrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [wrapKey]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [wrapKey]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [unwrapKey, wrapKey]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [unwrapKey, wrapKey]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, []) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, []) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [encrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [encrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [unwrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [unwrapKey, wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [unwrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [unwrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [decrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [decrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [unwrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [unwrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [wrapKey]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [wrapKey]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [unwrapKey, wrapKey]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [unwrapKey, wrapKey]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, []) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, []) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [encrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [encrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [unwrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [unwrapKey, wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [unwrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [unwrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [decrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [decrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [unwrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [unwrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [wrapKey]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [wrapKey]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [unwrapKey, wrapKey]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [unwrapKey, wrapKey]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, []) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, []) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [encrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [encrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [unwrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [unwrapKey, wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [unwrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [unwrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [decrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [decrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [unwrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [unwrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [wrapKey]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [wrapKey]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [unwrapKey, wrapKey]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [unwrapKey, wrapKey]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, []) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, []) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [encrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [encrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [unwrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [unwrapKey, wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [unwrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [unwrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [decrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [decrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [unwrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [unwrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [wrapKey]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [wrapKey]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [unwrapKey, wrapKey]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [unwrapKey, wrapKey]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, []) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, []) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >+PASS Empty usages: generateKey({length: 128, name: AES-CTR}, false, []) >+PASS Empty usages: generateKey({length: 128, name: AES-CTR}, true, []) >+PASS Empty usages: generateKey({length: 192, name: AES-CTR}, false, []) >+PASS Empty usages: generateKey({length: 192, name: AES-CTR}, true, []) >+PASS Empty usages: generateKey({length: 256, name: AES-CTR}, false, []) >+PASS Empty usages: generateKey({length: 256, name: AES-CTR}, true, []) >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-CTR.https.any.worker.html b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-CTR.https.any.worker.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-CTR.https.any.worker.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-CTR.https.worker-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-CTR.https.worker-expected.txt >deleted file mode 100644 >index 9b38fb3329c5a71c0f4aef6f90ce9d0aa142ff03..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-CTR.https.worker-expected.txt >+++ /dev/null >@@ -1,740 +0,0 @@ >- >-PASS Bad algorithm: generateKey(AES, false, [decrypt]) >-PASS Bad algorithm: generateKey(AES, true, [decrypt]) >-PASS Bad algorithm: generateKey(AES, RED, [decrypt]) >-PASS Bad algorithm: generateKey(AES, 7, [decrypt]) >-PASS Bad algorithm: generateKey(AES, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey(AES, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey(AES, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey(AES, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey(AES, false, [sign]) >-PASS Bad algorithm: generateKey(AES, true, [sign]) >-PASS Bad algorithm: generateKey(AES, RED, [sign]) >-PASS Bad algorithm: generateKey(AES, 7, [sign]) >-PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey(AES, false, [deriveBits]) >-PASS Bad algorithm: generateKey(AES, true, [deriveBits]) >-PASS Bad algorithm: generateKey(AES, RED, [deriveBits]) >-PASS Bad algorithm: generateKey(AES, 7, [deriveBits]) >-PASS Bad algorithm: generateKey(AES, false, []) >-PASS Bad algorithm: generateKey(AES, true, []) >-PASS Bad algorithm: generateKey(AES, RED, []) >-PASS Bad algorithm: generateKey(AES, 7, []) >-PASS Bad algorithm: generateKey(AES, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey(AES, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey(AES, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey(AES, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, false, [decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, true, [decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, false, [sign]) >-PASS Bad algorithm: generateKey({name: AES}, true, [sign]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [sign]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [sign]) >-PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, false, []) >-PASS Bad algorithm: generateKey({name: AES}, true, []) >-PASS Bad algorithm: generateKey({name: AES}, RED, []) >-PASS Bad algorithm: generateKey({name: AES}, 7, []) >-PASS Bad algorithm: generateKey({name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, []) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, []) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, []) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, []) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, []) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, []) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, []) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, []) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [encrypt, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, encrypt, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, encrypt, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [decrypt, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, decrypt, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, decrypt, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [encrypt, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, encrypt, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, encrypt, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [decrypt, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, decrypt, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, decrypt, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [decrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, decrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, decrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [decrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, decrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, decrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [encrypt, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, encrypt, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, encrypt, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [decrypt, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, decrypt, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, decrypt, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [encrypt, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, encrypt, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, encrypt, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [decrypt, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, decrypt, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, decrypt, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [decrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, decrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, decrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [decrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, decrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, decrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [encrypt, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, encrypt, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, encrypt, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [decrypt, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, decrypt, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, decrypt, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [encrypt, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, encrypt, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, encrypt, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [decrypt, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, decrypt, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, decrypt, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [decrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, decrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, decrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [decrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, decrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, decrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [decrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [decrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, []) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, []) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [decrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [decrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, []) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, []) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [decrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [decrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, []) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, []) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [decrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [decrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, []) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, []) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [decrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [decrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, []) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, []) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [decrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [decrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, []) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, []) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Empty usages: generateKey({length: 128, name: AES-CTR}, false, []) >-PASS Empty usages: generateKey({length: 128, name: AES-CTR}, true, []) >-PASS Empty usages: generateKey({length: 192, name: AES-CTR}, false, []) >-PASS Empty usages: generateKey({length: 192, name: AES-CTR}, true, []) >-PASS Empty usages: generateKey({length: 256, name: AES-CTR}, false, []) >-PASS Empty usages: generateKey({length: 256, name: AES-CTR}, true, []) >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-CTR.https.worker.html b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-CTR.https.worker.html >deleted file mode 100644 >index 2382913528e693b3a5d56c660a45060980b548c3..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-CTR.https.worker.html >+++ /dev/null >@@ -1 +0,0 @@ >-<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-CTR.https.worker.js b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-CTR.https.worker.js >deleted file mode 100644 >index f6766b27bba3d790d049a0e583362212febdc4af..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-CTR.https.worker.js >+++ /dev/null >@@ -1,6 +0,0 @@ >-// META: timeout=long >-importScripts("/resources/testharness.js"); >-importScripts("../util/helpers.js"); >-importScripts("failures.js"); >-run_test(["AES-CTR"]); >-done(); >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-GCM.https.any-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-GCM.https.any-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..f23c217e60dff1c76b83bc260c0673f970339474 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-GCM.https.any-expected.txt >@@ -0,0 +1,740 @@ >+ >+PASS Bad algorithm: generateKey(AES, false, [decrypt]) >+PASS Bad algorithm: generateKey(AES, true, [decrypt]) >+PASS Bad algorithm: generateKey(AES, RED, [decrypt]) >+PASS Bad algorithm: generateKey(AES, 7, [decrypt]) >+PASS Bad algorithm: generateKey(AES, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey(AES, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey(AES, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey(AES, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey(AES, false, [sign]) >+PASS Bad algorithm: generateKey(AES, true, [sign]) >+PASS Bad algorithm: generateKey(AES, RED, [sign]) >+PASS Bad algorithm: generateKey(AES, 7, [sign]) >+PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey(AES, false, [deriveBits]) >+PASS Bad algorithm: generateKey(AES, true, [deriveBits]) >+PASS Bad algorithm: generateKey(AES, RED, [deriveBits]) >+PASS Bad algorithm: generateKey(AES, 7, [deriveBits]) >+PASS Bad algorithm: generateKey(AES, false, []) >+PASS Bad algorithm: generateKey(AES, true, []) >+PASS Bad algorithm: generateKey(AES, RED, []) >+PASS Bad algorithm: generateKey(AES, 7, []) >+PASS Bad algorithm: generateKey(AES, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey(AES, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey(AES, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey(AES, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, false, [decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, true, [decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, false, [sign]) >+PASS Bad algorithm: generateKey({name: AES}, true, [sign]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [sign]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [sign]) >+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, false, []) >+PASS Bad algorithm: generateKey({name: AES}, true, []) >+PASS Bad algorithm: generateKey({name: AES}, RED, []) >+PASS Bad algorithm: generateKey({name: AES}, 7, []) >+PASS Bad algorithm: generateKey({name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, []) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, []) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, []) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, []) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, []) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, []) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, []) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, []) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [encrypt, sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [decrypt, encrypt, sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, encrypt, sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, encrypt, sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [decrypt, sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, decrypt, sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, decrypt, sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [encrypt, verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [decrypt, encrypt, verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, encrypt, verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, encrypt, verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [decrypt, verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, decrypt, verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, decrypt, verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [decrypt, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [decrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, decrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, decrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [decrypt, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [decrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, decrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, decrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [encrypt, sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [decrypt, encrypt, sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, encrypt, sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, encrypt, sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [decrypt, sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, decrypt, sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, decrypt, sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [encrypt, verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [decrypt, encrypt, verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, encrypt, verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, encrypt, verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [decrypt, verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, decrypt, verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, decrypt, verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [decrypt, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [decrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, decrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, decrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [decrypt, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [decrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, decrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, decrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [encrypt, sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [decrypt, encrypt, sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, encrypt, sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, encrypt, sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [decrypt, sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, decrypt, sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, decrypt, sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [encrypt, verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [decrypt, encrypt, verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, encrypt, verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, encrypt, verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [decrypt, verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, decrypt, verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, decrypt, verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [decrypt, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [decrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, decrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, decrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [decrypt, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [decrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, decrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, decrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [encrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [encrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [unwrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [unwrapKey, wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [unwrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [unwrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [decrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [decrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [unwrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [unwrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [wrapKey]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [wrapKey]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [unwrapKey, wrapKey]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [unwrapKey, wrapKey]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, []) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, []) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [encrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [encrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [unwrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [unwrapKey, wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [unwrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [unwrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [decrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [decrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [unwrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [unwrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [wrapKey]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [wrapKey]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [unwrapKey, wrapKey]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [unwrapKey, wrapKey]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, []) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, []) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [encrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [encrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [unwrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [unwrapKey, wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [unwrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [unwrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [decrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [decrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [unwrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [unwrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [wrapKey]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [wrapKey]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [unwrapKey, wrapKey]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [unwrapKey, wrapKey]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, []) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, []) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [encrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [encrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [unwrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [unwrapKey, wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [unwrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [unwrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [decrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [decrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [unwrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [unwrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [wrapKey]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [wrapKey]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [unwrapKey, wrapKey]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [unwrapKey, wrapKey]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, []) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, []) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [encrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [encrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [unwrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [unwrapKey, wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [unwrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [unwrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [decrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [decrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [unwrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [unwrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [wrapKey]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [wrapKey]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [unwrapKey, wrapKey]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [unwrapKey, wrapKey]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, []) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, []) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [encrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [encrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [unwrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [unwrapKey, wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [unwrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [unwrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [decrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [decrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [unwrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [unwrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [wrapKey]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [wrapKey]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [unwrapKey, wrapKey]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [unwrapKey, wrapKey]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, []) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, []) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >+PASS Empty usages: generateKey({length: 128, name: AES-GCM}, false, []) >+PASS Empty usages: generateKey({length: 128, name: AES-GCM}, true, []) >+PASS Empty usages: generateKey({length: 192, name: AES-GCM}, false, []) >+PASS Empty usages: generateKey({length: 192, name: AES-GCM}, true, []) >+PASS Empty usages: generateKey({length: 256, name: AES-GCM}, false, []) >+PASS Empty usages: generateKey({length: 256, name: AES-GCM}, true, []) >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-GCM.https.any.html b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-GCM.https.any.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-GCM.https.any.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-GCM.https.any.js b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-GCM.https.any.js >new file mode 100644 >index 0000000000000000000000000000000000000000..bb0ab46fbe6c99547446463df71132425266a3e1 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-GCM.https.any.js >@@ -0,0 +1,4 @@ >+// META: timeout=long >+// META: script=../util/helpers.js >+// META: script=failures.js >+run_test(["AES-GCM"]); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-GCM.https.any.worker-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-GCM.https.any.worker-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..f23c217e60dff1c76b83bc260c0673f970339474 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-GCM.https.any.worker-expected.txt >@@ -0,0 +1,740 @@ >+ >+PASS Bad algorithm: generateKey(AES, false, [decrypt]) >+PASS Bad algorithm: generateKey(AES, true, [decrypt]) >+PASS Bad algorithm: generateKey(AES, RED, [decrypt]) >+PASS Bad algorithm: generateKey(AES, 7, [decrypt]) >+PASS Bad algorithm: generateKey(AES, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey(AES, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey(AES, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey(AES, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey(AES, false, [sign]) >+PASS Bad algorithm: generateKey(AES, true, [sign]) >+PASS Bad algorithm: generateKey(AES, RED, [sign]) >+PASS Bad algorithm: generateKey(AES, 7, [sign]) >+PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey(AES, false, [deriveBits]) >+PASS Bad algorithm: generateKey(AES, true, [deriveBits]) >+PASS Bad algorithm: generateKey(AES, RED, [deriveBits]) >+PASS Bad algorithm: generateKey(AES, 7, [deriveBits]) >+PASS Bad algorithm: generateKey(AES, false, []) >+PASS Bad algorithm: generateKey(AES, true, []) >+PASS Bad algorithm: generateKey(AES, RED, []) >+PASS Bad algorithm: generateKey(AES, 7, []) >+PASS Bad algorithm: generateKey(AES, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey(AES, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey(AES, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey(AES, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, false, [decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, true, [decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, false, [sign]) >+PASS Bad algorithm: generateKey({name: AES}, true, [sign]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [sign]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [sign]) >+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, false, []) >+PASS Bad algorithm: generateKey({name: AES}, true, []) >+PASS Bad algorithm: generateKey({name: AES}, RED, []) >+PASS Bad algorithm: generateKey({name: AES}, 7, []) >+PASS Bad algorithm: generateKey({name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, []) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, []) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, []) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, []) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, []) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, []) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, []) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, []) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [encrypt, sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [decrypt, encrypt, sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, encrypt, sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, encrypt, sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [decrypt, sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, decrypt, sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, decrypt, sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [encrypt, verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [decrypt, encrypt, verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, encrypt, verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, encrypt, verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [decrypt, verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, decrypt, verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, decrypt, verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [decrypt, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [decrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, decrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, decrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [decrypt, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [decrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, decrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, decrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [encrypt, sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [decrypt, encrypt, sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, encrypt, sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, encrypt, sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [decrypt, sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, decrypt, sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, decrypt, sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [encrypt, verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [decrypt, encrypt, verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, encrypt, verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, encrypt, verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [decrypt, verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, decrypt, verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, decrypt, verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [decrypt, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [decrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, decrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, decrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [decrypt, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [decrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, decrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, decrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [encrypt, sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [decrypt, encrypt, sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, encrypt, sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, encrypt, sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [decrypt, sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, decrypt, sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, decrypt, sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [encrypt, verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [decrypt, encrypt, verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, encrypt, verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, encrypt, verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [decrypt, verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, decrypt, verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, decrypt, verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [decrypt, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, encrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [decrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, decrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, decrypt, deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [decrypt, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, encrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [decrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, decrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, decrypt, deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [encrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [encrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [unwrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [unwrapKey, wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [unwrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [unwrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [decrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [decrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [unwrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [unwrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [wrapKey]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [wrapKey]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [unwrapKey, wrapKey]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [unwrapKey, wrapKey]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, []) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, []) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [encrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [encrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [unwrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [unwrapKey, wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [unwrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [unwrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [decrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [decrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [unwrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [unwrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [wrapKey]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [wrapKey]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [unwrapKey, wrapKey]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [unwrapKey, wrapKey]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, []) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, []) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [encrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [encrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [unwrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [unwrapKey, wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [unwrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [unwrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [decrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [decrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [unwrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [unwrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [wrapKey]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [wrapKey]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [unwrapKey, wrapKey]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [unwrapKey, wrapKey]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, []) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, []) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [encrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [encrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [unwrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [unwrapKey, wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [unwrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [unwrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [decrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [decrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [unwrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [unwrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [wrapKey]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [wrapKey]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [unwrapKey, wrapKey]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [unwrapKey, wrapKey]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, []) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, []) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [encrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [encrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [unwrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [unwrapKey, wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [unwrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [unwrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [decrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [decrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [unwrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [unwrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [wrapKey]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [wrapKey]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [unwrapKey, wrapKey]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [unwrapKey, wrapKey]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, []) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, []) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [encrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [encrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [unwrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [unwrapKey, wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [unwrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [unwrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [decrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [decrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [unwrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [unwrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [wrapKey]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [wrapKey]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [unwrapKey, wrapKey]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [unwrapKey, wrapKey]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, []) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, []) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >+PASS Empty usages: generateKey({length: 128, name: AES-GCM}, false, []) >+PASS Empty usages: generateKey({length: 128, name: AES-GCM}, true, []) >+PASS Empty usages: generateKey({length: 192, name: AES-GCM}, false, []) >+PASS Empty usages: generateKey({length: 192, name: AES-GCM}, true, []) >+PASS Empty usages: generateKey({length: 256, name: AES-GCM}, false, []) >+PASS Empty usages: generateKey({length: 256, name: AES-GCM}, true, []) >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-GCM.https.any.worker.html b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-GCM.https.any.worker.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-GCM.https.any.worker.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-GCM.https.worker-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-GCM.https.worker-expected.txt >deleted file mode 100644 >index f23c217e60dff1c76b83bc260c0673f970339474..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-GCM.https.worker-expected.txt >+++ /dev/null >@@ -1,740 +0,0 @@ >- >-PASS Bad algorithm: generateKey(AES, false, [decrypt]) >-PASS Bad algorithm: generateKey(AES, true, [decrypt]) >-PASS Bad algorithm: generateKey(AES, RED, [decrypt]) >-PASS Bad algorithm: generateKey(AES, 7, [decrypt]) >-PASS Bad algorithm: generateKey(AES, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey(AES, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey(AES, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey(AES, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey(AES, false, [sign]) >-PASS Bad algorithm: generateKey(AES, true, [sign]) >-PASS Bad algorithm: generateKey(AES, RED, [sign]) >-PASS Bad algorithm: generateKey(AES, 7, [sign]) >-PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey(AES, false, [deriveBits]) >-PASS Bad algorithm: generateKey(AES, true, [deriveBits]) >-PASS Bad algorithm: generateKey(AES, RED, [deriveBits]) >-PASS Bad algorithm: generateKey(AES, 7, [deriveBits]) >-PASS Bad algorithm: generateKey(AES, false, []) >-PASS Bad algorithm: generateKey(AES, true, []) >-PASS Bad algorithm: generateKey(AES, RED, []) >-PASS Bad algorithm: generateKey(AES, 7, []) >-PASS Bad algorithm: generateKey(AES, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey(AES, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey(AES, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey(AES, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, false, [decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, true, [decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, false, [sign]) >-PASS Bad algorithm: generateKey({name: AES}, true, [sign]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [sign]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [sign]) >-PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, false, []) >-PASS Bad algorithm: generateKey({name: AES}, true, []) >-PASS Bad algorithm: generateKey({name: AES}, RED, []) >-PASS Bad algorithm: generateKey({name: AES}, 7, []) >-PASS Bad algorithm: generateKey({name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, []) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, []) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, []) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, []) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, []) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, []) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, []) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, []) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [encrypt, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, encrypt, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, encrypt, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [decrypt, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, decrypt, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, decrypt, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [encrypt, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, encrypt, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, encrypt, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [decrypt, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, decrypt, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, decrypt, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [decrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, decrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, decrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [decrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, decrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, decrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [encrypt, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, encrypt, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, encrypt, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [decrypt, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, decrypt, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, decrypt, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [encrypt, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, encrypt, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, encrypt, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [decrypt, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, decrypt, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, decrypt, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [decrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, decrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, decrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [decrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, decrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, decrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [encrypt, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, encrypt, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, encrypt, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [decrypt, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, decrypt, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, decrypt, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [encrypt, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, encrypt, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, encrypt, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [decrypt, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, decrypt, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, decrypt, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [decrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, decrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, decrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [decrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, decrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, decrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [decrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [decrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, []) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, []) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [decrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [decrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, []) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, []) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [decrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [decrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, []) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, []) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [decrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [decrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, []) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, []) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [decrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [decrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, []) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, []) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [decrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [decrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, []) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, []) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Empty usages: generateKey({length: 128, name: AES-GCM}, false, []) >-PASS Empty usages: generateKey({length: 128, name: AES-GCM}, true, []) >-PASS Empty usages: generateKey({length: 192, name: AES-GCM}, false, []) >-PASS Empty usages: generateKey({length: 192, name: AES-GCM}, true, []) >-PASS Empty usages: generateKey({length: 256, name: AES-GCM}, false, []) >-PASS Empty usages: generateKey({length: 256, name: AES-GCM}, true, []) >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-GCM.https.worker.html b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-GCM.https.worker.html >deleted file mode 100644 >index 2382913528e693b3a5d56c660a45060980b548c3..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-GCM.https.worker.html >+++ /dev/null >@@ -1 +0,0 @@ >-<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-GCM.https.worker.js b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-GCM.https.worker.js >deleted file mode 100644 >index 1383e5895595cf9972d1a169edcabbf580136e1b..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-GCM.https.worker.js >+++ /dev/null >@@ -1,6 +0,0 @@ >-// META: timeout=long >-importScripts("/resources/testharness.js"); >-importScripts("../util/helpers.js"); >-importScripts("failures.js"); >-run_test(["AES-GCM"]); >-done(); >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-KW.https.any-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-KW.https.any-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..180a9bcd490e499fc5145fa5059f543f91c42903 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-KW.https.any-expected.txt >@@ -0,0 +1,482 @@ >+ >+PASS Bad algorithm: generateKey(AES, false, [decrypt]) >+PASS Bad algorithm: generateKey(AES, true, [decrypt]) >+PASS Bad algorithm: generateKey(AES, RED, [decrypt]) >+PASS Bad algorithm: generateKey(AES, 7, [decrypt]) >+PASS Bad algorithm: generateKey(AES, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey(AES, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey(AES, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey(AES, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey(AES, false, [sign]) >+PASS Bad algorithm: generateKey(AES, true, [sign]) >+PASS Bad algorithm: generateKey(AES, RED, [sign]) >+PASS Bad algorithm: generateKey(AES, 7, [sign]) >+PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey(AES, false, [deriveBits]) >+PASS Bad algorithm: generateKey(AES, true, [deriveBits]) >+PASS Bad algorithm: generateKey(AES, RED, [deriveBits]) >+PASS Bad algorithm: generateKey(AES, 7, [deriveBits]) >+PASS Bad algorithm: generateKey(AES, false, []) >+PASS Bad algorithm: generateKey(AES, true, []) >+PASS Bad algorithm: generateKey(AES, RED, []) >+PASS Bad algorithm: generateKey(AES, 7, []) >+PASS Bad algorithm: generateKey(AES, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey(AES, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey(AES, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey(AES, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, false, [decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, true, [decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, false, [sign]) >+PASS Bad algorithm: generateKey({name: AES}, true, [sign]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [sign]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [sign]) >+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, false, []) >+PASS Bad algorithm: generateKey({name: AES}, true, []) >+PASS Bad algorithm: generateKey({name: AES}, RED, []) >+PASS Bad algorithm: generateKey({name: AES}, 7, []) >+PASS Bad algorithm: generateKey({name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, []) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, []) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, []) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, []) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, []) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, []) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, []) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, []) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [encrypt]) >+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, encrypt]) >+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, wrapKey, encrypt]) >+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, encrypt]) >+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, encrypt]) >+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [decrypt]) >+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, decrypt]) >+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, wrapKey, decrypt]) >+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, decrypt]) >+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, decrypt]) >+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, wrapKey, sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, wrapKey, verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, wrapKey, deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, wrapKey, deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [encrypt]) >+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, encrypt]) >+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, wrapKey, encrypt]) >+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, encrypt]) >+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, encrypt]) >+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [decrypt]) >+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, decrypt]) >+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, wrapKey, decrypt]) >+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, decrypt]) >+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, decrypt]) >+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, wrapKey, sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, wrapKey, verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, wrapKey, deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, wrapKey, deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [encrypt]) >+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, encrypt]) >+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, wrapKey, encrypt]) >+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, encrypt]) >+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, encrypt]) >+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [decrypt]) >+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, decrypt]) >+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, wrapKey, decrypt]) >+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, decrypt]) >+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, decrypt]) >+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, wrapKey, sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, wrapKey, verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, wrapKey, deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, wrapKey, deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, deriveBits]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-KW}, false, [wrapKey]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-KW}, true, [wrapKey]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-KW}, false, [unwrapKey, wrapKey]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-KW}, true, [unwrapKey, wrapKey]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-KW}, false, [unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-KW}, true, [unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-KW}, false, []) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-KW}, true, []) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-KW}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-KW}, false, [wrapKey]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-KW}, true, [wrapKey]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-KW}, false, [unwrapKey, wrapKey]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-KW}, true, [unwrapKey, wrapKey]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-KW}, false, [unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-KW}, true, [unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-KW}, false, []) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-KW}, true, []) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-KW}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-KW}, false, [wrapKey]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-KW}, true, [wrapKey]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-KW}, false, [unwrapKey, wrapKey]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-KW}, true, [unwrapKey, wrapKey]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-KW}, false, [unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-KW}, true, [unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-KW}, false, []) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-KW}, true, []) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-KW}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-KW}, false, [wrapKey]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-KW}, true, [wrapKey]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-KW}, false, [unwrapKey, wrapKey]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-KW}, true, [unwrapKey, wrapKey]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-KW}, false, [unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-KW}, true, [unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-KW}, false, []) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-KW}, true, []) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-KW}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-KW}, false, [wrapKey]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-KW}, true, [wrapKey]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-KW}, false, [unwrapKey, wrapKey]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-KW}, true, [unwrapKey, wrapKey]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-KW}, false, [unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-KW}, true, [unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-KW}, false, []) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-KW}, true, []) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-KW}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-KW}, false, [wrapKey]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-KW}, true, [wrapKey]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-KW}, false, [unwrapKey, wrapKey]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-KW}, true, [unwrapKey, wrapKey]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-KW}, false, [unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-KW}, true, [unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-KW}, false, []) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-KW}, true, []) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-KW}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) >+PASS Empty usages: generateKey({length: 128, name: AES-KW}, false, []) >+PASS Empty usages: generateKey({length: 128, name: AES-KW}, true, []) >+PASS Empty usages: generateKey({length: 192, name: AES-KW}, false, []) >+PASS Empty usages: generateKey({length: 192, name: AES-KW}, true, []) >+PASS Empty usages: generateKey({length: 256, name: AES-KW}, false, []) >+PASS Empty usages: generateKey({length: 256, name: AES-KW}, true, []) >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-KW.https.any.html b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-KW.https.any.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-KW.https.any.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-KW.https.any.js b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-KW.https.any.js >new file mode 100644 >index 0000000000000000000000000000000000000000..54d685f7565735f698a0d2886e7c5a3c255ea913 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-KW.https.any.js >@@ -0,0 +1,4 @@ >+// META: timeout=long >+// META: script=../util/helpers.js >+// META: script=failures.js >+run_test(["AES-KW"]); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-KW.https.any.worker-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-KW.https.any.worker-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..180a9bcd490e499fc5145fa5059f543f91c42903 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-KW.https.any.worker-expected.txt >@@ -0,0 +1,482 @@ >+ >+PASS Bad algorithm: generateKey(AES, false, [decrypt]) >+PASS Bad algorithm: generateKey(AES, true, [decrypt]) >+PASS Bad algorithm: generateKey(AES, RED, [decrypt]) >+PASS Bad algorithm: generateKey(AES, 7, [decrypt]) >+PASS Bad algorithm: generateKey(AES, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey(AES, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey(AES, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey(AES, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey(AES, false, [sign]) >+PASS Bad algorithm: generateKey(AES, true, [sign]) >+PASS Bad algorithm: generateKey(AES, RED, [sign]) >+PASS Bad algorithm: generateKey(AES, 7, [sign]) >+PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey(AES, false, [deriveBits]) >+PASS Bad algorithm: generateKey(AES, true, [deriveBits]) >+PASS Bad algorithm: generateKey(AES, RED, [deriveBits]) >+PASS Bad algorithm: generateKey(AES, 7, [deriveBits]) >+PASS Bad algorithm: generateKey(AES, false, []) >+PASS Bad algorithm: generateKey(AES, true, []) >+PASS Bad algorithm: generateKey(AES, RED, []) >+PASS Bad algorithm: generateKey(AES, 7, []) >+PASS Bad algorithm: generateKey(AES, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey(AES, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey(AES, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey(AES, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, false, [decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, true, [decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, false, [sign]) >+PASS Bad algorithm: generateKey({name: AES}, true, [sign]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [sign]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [sign]) >+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, false, []) >+PASS Bad algorithm: generateKey({name: AES}, true, []) >+PASS Bad algorithm: generateKey({name: AES}, RED, []) >+PASS Bad algorithm: generateKey({name: AES}, 7, []) >+PASS Bad algorithm: generateKey({name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, []) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, []) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, []) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, []) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, []) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, []) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, []) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, []) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [encrypt]) >+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, encrypt]) >+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, wrapKey, encrypt]) >+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, encrypt]) >+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, encrypt]) >+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [decrypt]) >+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, decrypt]) >+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, wrapKey, decrypt]) >+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, decrypt]) >+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, decrypt]) >+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, wrapKey, sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, sign]) >+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, wrapKey, verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, verify]) >+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, wrapKey, deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, deriveKey]) >+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, wrapKey, deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, deriveBits]) >+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [encrypt]) >+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, encrypt]) >+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, wrapKey, encrypt]) >+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, encrypt]) >+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, encrypt]) >+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [decrypt]) >+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, decrypt]) >+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, wrapKey, decrypt]) >+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, decrypt]) >+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, decrypt]) >+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, wrapKey, sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, sign]) >+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, wrapKey, verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, verify]) >+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, wrapKey, deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, deriveKey]) >+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, wrapKey, deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, deriveBits]) >+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [encrypt]) >+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, encrypt]) >+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, wrapKey, encrypt]) >+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, encrypt]) >+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, encrypt]) >+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [decrypt]) >+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, decrypt]) >+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, wrapKey, decrypt]) >+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, decrypt]) >+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, decrypt]) >+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, wrapKey, sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, sign]) >+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, wrapKey, verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, verify]) >+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, wrapKey, deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, deriveKey]) >+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, wrapKey, deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, deriveBits]) >+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, deriveBits]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-KW}, false, [wrapKey]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-KW}, true, [wrapKey]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-KW}, false, [unwrapKey, wrapKey]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-KW}, true, [unwrapKey, wrapKey]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-KW}, false, [unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-KW}, true, [unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-KW}, false, []) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-KW}, true, []) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-KW}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 64, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-KW}, false, [wrapKey]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-KW}, true, [wrapKey]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-KW}, false, [unwrapKey, wrapKey]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-KW}, true, [unwrapKey, wrapKey]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-KW}, false, [unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-KW}, true, [unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-KW}, false, []) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-KW}, true, []) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-KW}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 127, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-KW}, false, [wrapKey]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-KW}, true, [wrapKey]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-KW}, false, [unwrapKey, wrapKey]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-KW}, true, [unwrapKey, wrapKey]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-KW}, false, [unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-KW}, true, [unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-KW}, false, []) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-KW}, true, []) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-KW}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 129, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-KW}, false, [wrapKey]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-KW}, true, [wrapKey]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-KW}, false, [unwrapKey, wrapKey]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-KW}, true, [unwrapKey, wrapKey]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-KW}, false, [unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-KW}, true, [unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-KW}, false, []) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-KW}, true, []) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-KW}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 255, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-KW}, false, [wrapKey]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-KW}, true, [wrapKey]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-KW}, false, [unwrapKey, wrapKey]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-KW}, true, [unwrapKey, wrapKey]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-KW}, false, [unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-KW}, true, [unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-KW}, false, []) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-KW}, true, []) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-KW}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 257, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-KW}, false, [wrapKey]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-KW}, true, [wrapKey]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-KW}, false, [unwrapKey, wrapKey]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-KW}, true, [unwrapKey, wrapKey]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-KW}, false, [unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-KW}, true, [unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-KW}, false, []) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-KW}, true, []) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-KW}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) >+PASS Bad algorithm property: generateKey({length: 512, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) >+PASS Empty usages: generateKey({length: 128, name: AES-KW}, false, []) >+PASS Empty usages: generateKey({length: 128, name: AES-KW}, true, []) >+PASS Empty usages: generateKey({length: 192, name: AES-KW}, false, []) >+PASS Empty usages: generateKey({length: 192, name: AES-KW}, true, []) >+PASS Empty usages: generateKey({length: 256, name: AES-KW}, false, []) >+PASS Empty usages: generateKey({length: 256, name: AES-KW}, true, []) >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-KW.https.any.worker.html b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-KW.https.any.worker.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-KW.https.any.worker.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-KW.https.worker-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-KW.https.worker-expected.txt >deleted file mode 100644 >index 180a9bcd490e499fc5145fa5059f543f91c42903..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-KW.https.worker-expected.txt >+++ /dev/null >@@ -1,482 +0,0 @@ >- >-PASS Bad algorithm: generateKey(AES, false, [decrypt]) >-PASS Bad algorithm: generateKey(AES, true, [decrypt]) >-PASS Bad algorithm: generateKey(AES, RED, [decrypt]) >-PASS Bad algorithm: generateKey(AES, 7, [decrypt]) >-PASS Bad algorithm: generateKey(AES, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey(AES, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey(AES, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey(AES, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey(AES, false, [sign]) >-PASS Bad algorithm: generateKey(AES, true, [sign]) >-PASS Bad algorithm: generateKey(AES, RED, [sign]) >-PASS Bad algorithm: generateKey(AES, 7, [sign]) >-PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey(AES, false, [deriveBits]) >-PASS Bad algorithm: generateKey(AES, true, [deriveBits]) >-PASS Bad algorithm: generateKey(AES, RED, [deriveBits]) >-PASS Bad algorithm: generateKey(AES, 7, [deriveBits]) >-PASS Bad algorithm: generateKey(AES, false, []) >-PASS Bad algorithm: generateKey(AES, true, []) >-PASS Bad algorithm: generateKey(AES, RED, []) >-PASS Bad algorithm: generateKey(AES, 7, []) >-PASS Bad algorithm: generateKey(AES, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey(AES, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey(AES, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey(AES, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, false, [decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, true, [decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, false, [sign]) >-PASS Bad algorithm: generateKey({name: AES}, true, [sign]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [sign]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [sign]) >-PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, false, []) >-PASS Bad algorithm: generateKey({name: AES}, true, []) >-PASS Bad algorithm: generateKey({name: AES}, RED, []) >-PASS Bad algorithm: generateKey({name: AES}, 7, []) >-PASS Bad algorithm: generateKey({name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, []) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, []) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, []) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, []) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, []) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, []) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, []) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, []) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [encrypt]) >-PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, encrypt]) >-PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, encrypt]) >-PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, encrypt]) >-PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [decrypt]) >-PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, decrypt]) >-PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, decrypt]) >-PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, decrypt]) >-PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, wrapKey, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, wrapKey, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, wrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, wrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [encrypt]) >-PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, encrypt]) >-PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, encrypt]) >-PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, encrypt]) >-PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [decrypt]) >-PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, decrypt]) >-PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, decrypt]) >-PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, decrypt]) >-PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, wrapKey, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, wrapKey, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, wrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, wrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [encrypt]) >-PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, encrypt]) >-PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, encrypt]) >-PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, encrypt]) >-PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [decrypt]) >-PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, decrypt]) >-PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, decrypt]) >-PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, decrypt]) >-PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, wrapKey, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, wrapKey, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, wrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, wrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, deriveBits]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-KW}, false, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-KW}, true, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-KW}, false, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-KW}, true, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-KW}, false, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-KW}, true, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-KW}, false, []) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-KW}, true, []) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-KW}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-KW}, false, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-KW}, true, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-KW}, false, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-KW}, true, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-KW}, false, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-KW}, true, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-KW}, false, []) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-KW}, true, []) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-KW}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-KW}, false, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-KW}, true, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-KW}, false, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-KW}, true, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-KW}, false, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-KW}, true, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-KW}, false, []) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-KW}, true, []) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-KW}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-KW}, false, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-KW}, true, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-KW}, false, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-KW}, true, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-KW}, false, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-KW}, true, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-KW}, false, []) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-KW}, true, []) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-KW}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-KW}, false, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-KW}, true, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-KW}, false, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-KW}, true, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-KW}, false, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-KW}, true, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-KW}, false, []) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-KW}, true, []) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-KW}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-KW}, false, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-KW}, true, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-KW}, false, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-KW}, true, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-KW}, false, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-KW}, true, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-KW}, false, []) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-KW}, true, []) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-KW}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) >-PASS Empty usages: generateKey({length: 128, name: AES-KW}, false, []) >-PASS Empty usages: generateKey({length: 128, name: AES-KW}, true, []) >-PASS Empty usages: generateKey({length: 192, name: AES-KW}, false, []) >-PASS Empty usages: generateKey({length: 192, name: AES-KW}, true, []) >-PASS Empty usages: generateKey({length: 256, name: AES-KW}, false, []) >-PASS Empty usages: generateKey({length: 256, name: AES-KW}, true, []) >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-KW.https.worker.html b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-KW.https.worker.html >deleted file mode 100644 >index 2382913528e693b3a5d56c660a45060980b548c3..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-KW.https.worker.html >+++ /dev/null >@@ -1 +0,0 @@ >-<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-KW.https.worker.js b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-KW.https.worker.js >deleted file mode 100644 >index 04f5bb6edab65d9b22281cf2e0bb8310cb16e9f2..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-KW.https.worker.js >+++ /dev/null >@@ -1,6 +0,0 @@ >-// META: timeout=long >-importScripts("/resources/testharness.js"); >-importScripts("../util/helpers.js"); >-importScripts("failures.js"); >-run_test(["AES-KW"]); >-done(); >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_ECDH.https.any-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_ECDH.https.any-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..e797642e03c42a0edf449c736ab6db07a007b1c5 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_ECDH.https.any-expected.txt >@@ -0,0 +1,442 @@ >+ >+PASS Bad algorithm: generateKey(AES, false, [decrypt]) >+PASS Bad algorithm: generateKey(AES, true, [decrypt]) >+PASS Bad algorithm: generateKey(AES, RED, [decrypt]) >+PASS Bad algorithm: generateKey(AES, 7, [decrypt]) >+PASS Bad algorithm: generateKey(AES, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey(AES, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey(AES, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey(AES, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey(AES, false, [sign]) >+PASS Bad algorithm: generateKey(AES, true, [sign]) >+PASS Bad algorithm: generateKey(AES, RED, [sign]) >+PASS Bad algorithm: generateKey(AES, 7, [sign]) >+PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey(AES, false, [deriveBits]) >+PASS Bad algorithm: generateKey(AES, true, [deriveBits]) >+PASS Bad algorithm: generateKey(AES, RED, [deriveBits]) >+PASS Bad algorithm: generateKey(AES, 7, [deriveBits]) >+PASS Bad algorithm: generateKey(AES, false, []) >+PASS Bad algorithm: generateKey(AES, true, []) >+PASS Bad algorithm: generateKey(AES, RED, []) >+PASS Bad algorithm: generateKey(AES, 7, []) >+PASS Bad algorithm: generateKey(AES, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey(AES, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey(AES, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey(AES, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, false, [decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, true, [decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, false, [sign]) >+PASS Bad algorithm: generateKey({name: AES}, true, [sign]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [sign]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [sign]) >+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, false, []) >+PASS Bad algorithm: generateKey({name: AES}, true, []) >+PASS Bad algorithm: generateKey({name: AES}, RED, []) >+PASS Bad algorithm: generateKey({name: AES}, 7, []) >+PASS Bad algorithm: generateKey({name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, []) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, []) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, []) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, []) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, []) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, []) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, []) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, []) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [encrypt]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, encrypt]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, deriveKey, encrypt]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, encrypt]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, encrypt]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [decrypt]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, decrypt]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, deriveKey, decrypt]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, decrypt]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, decrypt]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [sign]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, sign]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, deriveKey, sign]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, sign]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, sign]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [verify]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, verify]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, deriveKey, verify]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, verify]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, verify]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [wrapKey]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, wrapKey]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, deriveKey, wrapKey]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, wrapKey]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, wrapKey]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [unwrapKey]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, unwrapKey]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, deriveKey, unwrapKey]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, unwrapKey]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, unwrapKey]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [encrypt]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, encrypt]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, deriveKey, encrypt]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, encrypt]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, encrypt]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [decrypt]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, decrypt]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, deriveKey, decrypt]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, decrypt]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, decrypt]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [sign]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, sign]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, deriveKey, sign]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, sign]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, sign]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [verify]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, verify]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, deriveKey, verify]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, verify]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, verify]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [wrapKey]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, wrapKey]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, deriveKey, wrapKey]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, wrapKey]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, wrapKey]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [unwrapKey]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, unwrapKey]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, deriveKey, unwrapKey]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, unwrapKey]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, unwrapKey]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [encrypt]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, encrypt]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, deriveKey, encrypt]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, encrypt]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, encrypt]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [decrypt]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, decrypt]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, deriveKey, decrypt]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, decrypt]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, decrypt]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [sign]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, sign]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, deriveKey, sign]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, sign]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, sign]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [verify]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, verify]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, deriveKey, verify]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, verify]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, verify]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [wrapKey]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, wrapKey]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, deriveKey, wrapKey]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, wrapKey]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, wrapKey]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [unwrapKey]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, unwrapKey]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, deriveKey, unwrapKey]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, unwrapKey]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, unwrapKey]) >+PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: P-512}, false, [deriveKey]) >+PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: P-512}, true, [deriveKey]) >+PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: P-512}, false, [deriveBits, deriveKey]) >+PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: P-512}, true, [deriveBits, deriveKey]) >+PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: P-512}, false, [deriveBits]) >+PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: P-512}, true, [deriveBits]) >+PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: P-512}, false, []) >+PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: P-512}, true, []) >+PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: P-512}, false, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) >+PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: P-512}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) >+PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: Curve25519}, false, [deriveKey]) >+PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: Curve25519}, true, [deriveKey]) >+PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: Curve25519}, false, [deriveBits, deriveKey]) >+PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: Curve25519}, true, [deriveBits, deriveKey]) >+PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: Curve25519}, false, [deriveBits]) >+PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: Curve25519}, true, [deriveBits]) >+PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: Curve25519}, false, []) >+PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: Curve25519}, true, []) >+PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: Curve25519}, false, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) >+PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: Curve25519}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) >+PASS Empty usages: generateKey({name: ECDH, namedCurve: P-256}, false, []) >+PASS Empty usages: generateKey({name: ECDH, namedCurve: P-256}, true, []) >+PASS Empty usages: generateKey({name: ECDH, namedCurve: P-384}, false, []) >+PASS Empty usages: generateKey({name: ECDH, namedCurve: P-384}, true, []) >+FAIL Empty usages: generateKey({name: ECDH, namedCurve: P-521}, false, []) assert_equals: Empty usages not supported expected "SyntaxError" but got "NotSupportedError" >+FAIL Empty usages: generateKey({name: ECDH, namedCurve: P-521}, true, []) assert_equals: Empty usages not supported expected "SyntaxError" but got "NotSupportedError" >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_ECDH.https.any.html b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_ECDH.https.any.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_ECDH.https.any.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_ECDH.https.any.js b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_ECDH.https.any.js >new file mode 100644 >index 0000000000000000000000000000000000000000..4c13c5ac5721f7fe1a35152308de7eb6b9e41a97 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_ECDH.https.any.js >@@ -0,0 +1,4 @@ >+// META: timeout=long >+// META: script=../util/helpers.js >+// META: script=failures.js >+run_test(["ECDH"]); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_ECDH.https.any.worker-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_ECDH.https.any.worker-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..e797642e03c42a0edf449c736ab6db07a007b1c5 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_ECDH.https.any.worker-expected.txt >@@ -0,0 +1,442 @@ >+ >+PASS Bad algorithm: generateKey(AES, false, [decrypt]) >+PASS Bad algorithm: generateKey(AES, true, [decrypt]) >+PASS Bad algorithm: generateKey(AES, RED, [decrypt]) >+PASS Bad algorithm: generateKey(AES, 7, [decrypt]) >+PASS Bad algorithm: generateKey(AES, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey(AES, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey(AES, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey(AES, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey(AES, false, [sign]) >+PASS Bad algorithm: generateKey(AES, true, [sign]) >+PASS Bad algorithm: generateKey(AES, RED, [sign]) >+PASS Bad algorithm: generateKey(AES, 7, [sign]) >+PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey(AES, false, [deriveBits]) >+PASS Bad algorithm: generateKey(AES, true, [deriveBits]) >+PASS Bad algorithm: generateKey(AES, RED, [deriveBits]) >+PASS Bad algorithm: generateKey(AES, 7, [deriveBits]) >+PASS Bad algorithm: generateKey(AES, false, []) >+PASS Bad algorithm: generateKey(AES, true, []) >+PASS Bad algorithm: generateKey(AES, RED, []) >+PASS Bad algorithm: generateKey(AES, 7, []) >+PASS Bad algorithm: generateKey(AES, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey(AES, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey(AES, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey(AES, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, false, [decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, true, [decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, false, [sign]) >+PASS Bad algorithm: generateKey({name: AES}, true, [sign]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [sign]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [sign]) >+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, false, []) >+PASS Bad algorithm: generateKey({name: AES}, true, []) >+PASS Bad algorithm: generateKey({name: AES}, RED, []) >+PASS Bad algorithm: generateKey({name: AES}, 7, []) >+PASS Bad algorithm: generateKey({name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, []) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, []) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, []) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, []) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, []) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, []) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, []) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, []) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [encrypt]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, encrypt]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, deriveKey, encrypt]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, encrypt]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, encrypt]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [decrypt]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, decrypt]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, deriveKey, decrypt]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, decrypt]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, decrypt]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [sign]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, sign]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, deriveKey, sign]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, sign]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, sign]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [verify]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, verify]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, deriveKey, verify]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, verify]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, verify]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [wrapKey]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, wrapKey]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, deriveKey, wrapKey]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, wrapKey]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, wrapKey]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [unwrapKey]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, unwrapKey]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, deriveKey, unwrapKey]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, unwrapKey]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, unwrapKey]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [encrypt]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, encrypt]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, deriveKey, encrypt]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, encrypt]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, encrypt]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [decrypt]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, decrypt]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, deriveKey, decrypt]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, decrypt]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, decrypt]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [sign]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, sign]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, deriveKey, sign]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, sign]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, sign]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [verify]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, verify]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, deriveKey, verify]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, verify]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, verify]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [wrapKey]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, wrapKey]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, deriveKey, wrapKey]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, wrapKey]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, wrapKey]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [unwrapKey]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, unwrapKey]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, deriveKey, unwrapKey]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, unwrapKey]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, unwrapKey]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [encrypt]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, encrypt]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, deriveKey, encrypt]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, encrypt]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, encrypt]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [decrypt]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, decrypt]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, deriveKey, decrypt]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, decrypt]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, decrypt]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [sign]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, sign]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, deriveKey, sign]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, sign]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, sign]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [verify]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, verify]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, deriveKey, verify]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, verify]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, verify]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [wrapKey]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, wrapKey]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, deriveKey, wrapKey]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, wrapKey]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, wrapKey]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [unwrapKey]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, unwrapKey]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, deriveKey, unwrapKey]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, unwrapKey]) >+PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, unwrapKey]) >+PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: P-512}, false, [deriveKey]) >+PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: P-512}, true, [deriveKey]) >+PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: P-512}, false, [deriveBits, deriveKey]) >+PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: P-512}, true, [deriveBits, deriveKey]) >+PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: P-512}, false, [deriveBits]) >+PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: P-512}, true, [deriveBits]) >+PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: P-512}, false, []) >+PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: P-512}, true, []) >+PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: P-512}, false, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) >+PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: P-512}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) >+PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: Curve25519}, false, [deriveKey]) >+PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: Curve25519}, true, [deriveKey]) >+PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: Curve25519}, false, [deriveBits, deriveKey]) >+PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: Curve25519}, true, [deriveBits, deriveKey]) >+PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: Curve25519}, false, [deriveBits]) >+PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: Curve25519}, true, [deriveBits]) >+PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: Curve25519}, false, []) >+PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: Curve25519}, true, []) >+PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: Curve25519}, false, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) >+PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: Curve25519}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) >+PASS Empty usages: generateKey({name: ECDH, namedCurve: P-256}, false, []) >+PASS Empty usages: generateKey({name: ECDH, namedCurve: P-256}, true, []) >+PASS Empty usages: generateKey({name: ECDH, namedCurve: P-384}, false, []) >+PASS Empty usages: generateKey({name: ECDH, namedCurve: P-384}, true, []) >+FAIL Empty usages: generateKey({name: ECDH, namedCurve: P-521}, false, []) assert_equals: Empty usages not supported expected "SyntaxError" but got "NotSupportedError" >+FAIL Empty usages: generateKey({name: ECDH, namedCurve: P-521}, true, []) assert_equals: Empty usages not supported expected "SyntaxError" but got "NotSupportedError" >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_ECDH.https.any.worker.html b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_ECDH.https.any.worker.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_ECDH.https.any.worker.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_ECDH.https.worker-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_ECDH.https.worker-expected.txt >deleted file mode 100644 >index e797642e03c42a0edf449c736ab6db07a007b1c5..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_ECDH.https.worker-expected.txt >+++ /dev/null >@@ -1,442 +0,0 @@ >- >-PASS Bad algorithm: generateKey(AES, false, [decrypt]) >-PASS Bad algorithm: generateKey(AES, true, [decrypt]) >-PASS Bad algorithm: generateKey(AES, RED, [decrypt]) >-PASS Bad algorithm: generateKey(AES, 7, [decrypt]) >-PASS Bad algorithm: generateKey(AES, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey(AES, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey(AES, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey(AES, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey(AES, false, [sign]) >-PASS Bad algorithm: generateKey(AES, true, [sign]) >-PASS Bad algorithm: generateKey(AES, RED, [sign]) >-PASS Bad algorithm: generateKey(AES, 7, [sign]) >-PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey(AES, false, [deriveBits]) >-PASS Bad algorithm: generateKey(AES, true, [deriveBits]) >-PASS Bad algorithm: generateKey(AES, RED, [deriveBits]) >-PASS Bad algorithm: generateKey(AES, 7, [deriveBits]) >-PASS Bad algorithm: generateKey(AES, false, []) >-PASS Bad algorithm: generateKey(AES, true, []) >-PASS Bad algorithm: generateKey(AES, RED, []) >-PASS Bad algorithm: generateKey(AES, 7, []) >-PASS Bad algorithm: generateKey(AES, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey(AES, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey(AES, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey(AES, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, false, [decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, true, [decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, false, [sign]) >-PASS Bad algorithm: generateKey({name: AES}, true, [sign]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [sign]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [sign]) >-PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, false, []) >-PASS Bad algorithm: generateKey({name: AES}, true, []) >-PASS Bad algorithm: generateKey({name: AES}, RED, []) >-PASS Bad algorithm: generateKey({name: AES}, 7, []) >-PASS Bad algorithm: generateKey({name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, []) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, []) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, []) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, []) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, []) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, []) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, []) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, []) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [encrypt]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, encrypt]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, deriveKey, encrypt]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, encrypt]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, encrypt]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [decrypt]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, decrypt]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, deriveKey, decrypt]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, decrypt]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, decrypt]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [sign]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, sign]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, deriveKey, sign]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, sign]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, sign]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [verify]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, verify]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, deriveKey, verify]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, verify]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, verify]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [wrapKey]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, wrapKey]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, deriveKey, wrapKey]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, wrapKey]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, wrapKey]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [unwrapKey]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, unwrapKey]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, deriveKey, unwrapKey]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, unwrapKey]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, unwrapKey]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [encrypt]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, encrypt]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, deriveKey, encrypt]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, encrypt]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, encrypt]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [decrypt]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, decrypt]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, deriveKey, decrypt]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, decrypt]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, decrypt]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [sign]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, sign]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, deriveKey, sign]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, sign]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, sign]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [verify]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, verify]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, deriveKey, verify]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, verify]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, verify]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [wrapKey]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, wrapKey]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, deriveKey, wrapKey]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, wrapKey]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, wrapKey]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [unwrapKey]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, unwrapKey]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, deriveKey, unwrapKey]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, unwrapKey]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, unwrapKey]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [encrypt]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, encrypt]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, deriveKey, encrypt]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, encrypt]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, encrypt]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [decrypt]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, decrypt]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, deriveKey, decrypt]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, decrypt]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, decrypt]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [sign]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, sign]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, deriveKey, sign]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, sign]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, sign]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [verify]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, verify]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, deriveKey, verify]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, verify]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, verify]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [wrapKey]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, wrapKey]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, deriveKey, wrapKey]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, wrapKey]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, wrapKey]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [unwrapKey]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, unwrapKey]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, deriveKey, unwrapKey]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, unwrapKey]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, unwrapKey]) >-PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: P-512}, false, [deriveKey]) >-PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: P-512}, true, [deriveKey]) >-PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: P-512}, false, [deriveBits, deriveKey]) >-PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: P-512}, true, [deriveBits, deriveKey]) >-PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: P-512}, false, [deriveBits]) >-PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: P-512}, true, [deriveBits]) >-PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: P-512}, false, []) >-PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: P-512}, true, []) >-PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: P-512}, false, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) >-PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: P-512}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) >-PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: Curve25519}, false, [deriveKey]) >-PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: Curve25519}, true, [deriveKey]) >-PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: Curve25519}, false, [deriveBits, deriveKey]) >-PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: Curve25519}, true, [deriveBits, deriveKey]) >-PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: Curve25519}, false, [deriveBits]) >-PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: Curve25519}, true, [deriveBits]) >-PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: Curve25519}, false, []) >-PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: Curve25519}, true, []) >-PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: Curve25519}, false, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) >-PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: Curve25519}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) >-PASS Empty usages: generateKey({name: ECDH, namedCurve: P-256}, false, []) >-PASS Empty usages: generateKey({name: ECDH, namedCurve: P-256}, true, []) >-PASS Empty usages: generateKey({name: ECDH, namedCurve: P-384}, false, []) >-PASS Empty usages: generateKey({name: ECDH, namedCurve: P-384}, true, []) >-FAIL Empty usages: generateKey({name: ECDH, namedCurve: P-521}, false, []) assert_equals: Empty usages not supported expected "SyntaxError" but got "NotSupportedError" >-FAIL Empty usages: generateKey({name: ECDH, namedCurve: P-521}, true, []) assert_equals: Empty usages not supported expected "SyntaxError" but got "NotSupportedError" >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_ECDH.https.worker.html b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_ECDH.https.worker.html >deleted file mode 100644 >index 2382913528e693b3a5d56c660a45060980b548c3..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_ECDH.https.worker.html >+++ /dev/null >@@ -1 +0,0 @@ >-<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_ECDH.https.worker.js b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_ECDH.https.worker.js >deleted file mode 100644 >index a7e6a7240bcc4ab3d70d9513bcb7c9267c81307b..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_ECDH.https.worker.js >+++ /dev/null >@@ -1,6 +0,0 @@ >-// META: timeout=long >-importScripts("/resources/testharness.js"); >-importScripts("../util/helpers.js"); >-importScripts("failures.js"); >-run_test(["ECDH"]); >-done(); >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_ECDSA.https.any-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_ECDSA.https.any-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..e2532ee71c2782488784aad5f6a2445bc21cb2fc >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_ECDSA.https.any-expected.txt >@@ -0,0 +1,420 @@ >+ >+PASS Bad algorithm: generateKey(AES, false, [decrypt]) >+PASS Bad algorithm: generateKey(AES, true, [decrypt]) >+PASS Bad algorithm: generateKey(AES, RED, [decrypt]) >+PASS Bad algorithm: generateKey(AES, 7, [decrypt]) >+PASS Bad algorithm: generateKey(AES, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey(AES, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey(AES, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey(AES, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey(AES, false, [sign]) >+PASS Bad algorithm: generateKey(AES, true, [sign]) >+PASS Bad algorithm: generateKey(AES, RED, [sign]) >+PASS Bad algorithm: generateKey(AES, 7, [sign]) >+PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey(AES, false, [deriveBits]) >+PASS Bad algorithm: generateKey(AES, true, [deriveBits]) >+PASS Bad algorithm: generateKey(AES, RED, [deriveBits]) >+PASS Bad algorithm: generateKey(AES, 7, [deriveBits]) >+PASS Bad algorithm: generateKey(AES, false, []) >+PASS Bad algorithm: generateKey(AES, true, []) >+PASS Bad algorithm: generateKey(AES, RED, []) >+PASS Bad algorithm: generateKey(AES, 7, []) >+PASS Bad algorithm: generateKey(AES, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey(AES, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey(AES, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey(AES, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, false, [decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, true, [decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, false, [sign]) >+PASS Bad algorithm: generateKey({name: AES}, true, [sign]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [sign]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [sign]) >+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, false, []) >+PASS Bad algorithm: generateKey({name: AES}, true, []) >+PASS Bad algorithm: generateKey({name: AES}, RED, []) >+PASS Bad algorithm: generateKey({name: AES}, 7, []) >+PASS Bad algorithm: generateKey({name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, []) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, []) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, []) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, []) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, []) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, []) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, []) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, []) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [encrypt]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, encrypt]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [verify, sign, encrypt]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, verify, sign, sign, verify, encrypt]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [decrypt]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, decrypt]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [verify, sign, decrypt]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, verify, sign, sign, verify, decrypt]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [wrapKey]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, wrapKey]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [verify, sign, wrapKey]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, verify, sign, sign, verify, wrapKey]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [unwrapKey]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, unwrapKey]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [verify, sign, unwrapKey]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, verify, sign, sign, verify, unwrapKey]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [deriveKey]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, deriveKey]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [verify, sign, deriveKey]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, verify, sign, sign, verify, deriveKey]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [deriveBits]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, deriveBits]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [verify, sign, deriveBits]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, verify, sign, sign, verify, deriveBits]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [encrypt]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, encrypt]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [verify, sign, encrypt]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, verify, sign, sign, verify, encrypt]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [decrypt]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, decrypt]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [verify, sign, decrypt]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, verify, sign, sign, verify, decrypt]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [wrapKey]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, wrapKey]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [verify, sign, wrapKey]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, verify, sign, sign, verify, wrapKey]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [unwrapKey]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, unwrapKey]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [verify, sign, unwrapKey]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, verify, sign, sign, verify, unwrapKey]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [deriveKey]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, deriveKey]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [verify, sign, deriveKey]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, verify, sign, sign, verify, deriveKey]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [deriveBits]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, deriveBits]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [verify, sign, deriveBits]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, verify, sign, sign, verify, deriveBits]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [encrypt]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, encrypt]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [verify, sign, encrypt]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, verify, sign, sign, verify, encrypt]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [decrypt]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, decrypt]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [verify, sign, decrypt]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, verify, sign, sign, verify, decrypt]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [wrapKey]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, wrapKey]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [verify, sign, wrapKey]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, verify, sign, sign, verify, wrapKey]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [unwrapKey]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, unwrapKey]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [verify, sign, unwrapKey]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, verify, sign, sign, verify, unwrapKey]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [deriveKey]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, deriveKey]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [verify, sign, deriveKey]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, verify, sign, sign, verify, deriveKey]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [deriveBits]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, deriveBits]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [verify, sign, deriveBits]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, verify, sign, sign, verify, deriveBits]) >+PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: P-512}, false, [sign]) >+PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: P-512}, true, [sign]) >+PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: P-512}, false, [verify, sign]) >+PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: P-512}, true, [verify, sign]) >+PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: P-512}, false, []) >+PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: P-512}, true, []) >+PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: P-512}, false, [sign, verify, sign, sign, verify]) >+PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: P-512}, true, [sign, verify, sign, sign, verify]) >+PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: Curve25519}, false, [sign]) >+PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: Curve25519}, true, [sign]) >+PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: Curve25519}, false, [verify, sign]) >+PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: Curve25519}, true, [verify, sign]) >+PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: Curve25519}, false, []) >+PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: Curve25519}, true, []) >+PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: Curve25519}, false, [sign, verify, sign, sign, verify]) >+PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: Curve25519}, true, [sign, verify, sign, sign, verify]) >+PASS Empty usages: generateKey({name: ECDSA, namedCurve: P-256}, false, []) >+PASS Empty usages: generateKey({name: ECDSA, namedCurve: P-256}, true, []) >+PASS Empty usages: generateKey({name: ECDSA, namedCurve: P-384}, false, []) >+PASS Empty usages: generateKey({name: ECDSA, namedCurve: P-384}, true, []) >+FAIL Empty usages: generateKey({name: ECDSA, namedCurve: P-521}, false, []) assert_equals: Empty usages not supported expected "SyntaxError" but got "NotSupportedError" >+FAIL Empty usages: generateKey({name: ECDSA, namedCurve: P-521}, true, []) assert_equals: Empty usages not supported expected "SyntaxError" but got "NotSupportedError" >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_ECDSA.https.any.html b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_ECDSA.https.any.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_ECDSA.https.any.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_ECDSA.https.any.js b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_ECDSA.https.any.js >new file mode 100644 >index 0000000000000000000000000000000000000000..74cd480e2c2de0eab571174726d282e0ba9fba17 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_ECDSA.https.any.js >@@ -0,0 +1,4 @@ >+// META: timeout=long >+// META: script=../util/helpers.js >+// META: script=failures.js >+run_test(["ECDSA"]); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_ECDSA.https.any.worker-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_ECDSA.https.any.worker-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..e2532ee71c2782488784aad5f6a2445bc21cb2fc >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_ECDSA.https.any.worker-expected.txt >@@ -0,0 +1,420 @@ >+ >+PASS Bad algorithm: generateKey(AES, false, [decrypt]) >+PASS Bad algorithm: generateKey(AES, true, [decrypt]) >+PASS Bad algorithm: generateKey(AES, RED, [decrypt]) >+PASS Bad algorithm: generateKey(AES, 7, [decrypt]) >+PASS Bad algorithm: generateKey(AES, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey(AES, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey(AES, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey(AES, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey(AES, false, [sign]) >+PASS Bad algorithm: generateKey(AES, true, [sign]) >+PASS Bad algorithm: generateKey(AES, RED, [sign]) >+PASS Bad algorithm: generateKey(AES, 7, [sign]) >+PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey(AES, false, [deriveBits]) >+PASS Bad algorithm: generateKey(AES, true, [deriveBits]) >+PASS Bad algorithm: generateKey(AES, RED, [deriveBits]) >+PASS Bad algorithm: generateKey(AES, 7, [deriveBits]) >+PASS Bad algorithm: generateKey(AES, false, []) >+PASS Bad algorithm: generateKey(AES, true, []) >+PASS Bad algorithm: generateKey(AES, RED, []) >+PASS Bad algorithm: generateKey(AES, 7, []) >+PASS Bad algorithm: generateKey(AES, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey(AES, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey(AES, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey(AES, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, false, [decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, true, [decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, false, [sign]) >+PASS Bad algorithm: generateKey({name: AES}, true, [sign]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [sign]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [sign]) >+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, false, []) >+PASS Bad algorithm: generateKey({name: AES}, true, []) >+PASS Bad algorithm: generateKey({name: AES}, RED, []) >+PASS Bad algorithm: generateKey({name: AES}, 7, []) >+PASS Bad algorithm: generateKey({name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, []) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, []) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, []) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, []) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, []) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, []) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, []) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, []) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [encrypt]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, encrypt]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [verify, sign, encrypt]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, verify, sign, sign, verify, encrypt]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [decrypt]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, decrypt]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [verify, sign, decrypt]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, verify, sign, sign, verify, decrypt]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [wrapKey]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, wrapKey]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [verify, sign, wrapKey]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, verify, sign, sign, verify, wrapKey]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [unwrapKey]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, unwrapKey]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [verify, sign, unwrapKey]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, verify, sign, sign, verify, unwrapKey]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [deriveKey]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, deriveKey]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [verify, sign, deriveKey]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, verify, sign, sign, verify, deriveKey]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [deriveBits]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, deriveBits]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [verify, sign, deriveBits]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, verify, sign, sign, verify, deriveBits]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [encrypt]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, encrypt]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [verify, sign, encrypt]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, verify, sign, sign, verify, encrypt]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [decrypt]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, decrypt]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [verify, sign, decrypt]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, verify, sign, sign, verify, decrypt]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [wrapKey]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, wrapKey]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [verify, sign, wrapKey]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, verify, sign, sign, verify, wrapKey]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [unwrapKey]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, unwrapKey]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [verify, sign, unwrapKey]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, verify, sign, sign, verify, unwrapKey]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [deriveKey]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, deriveKey]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [verify, sign, deriveKey]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, verify, sign, sign, verify, deriveKey]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [deriveBits]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, deriveBits]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [verify, sign, deriveBits]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, verify, sign, sign, verify, deriveBits]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [encrypt]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, encrypt]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [verify, sign, encrypt]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, verify, sign, sign, verify, encrypt]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [decrypt]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, decrypt]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [verify, sign, decrypt]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, verify, sign, sign, verify, decrypt]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [wrapKey]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, wrapKey]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [verify, sign, wrapKey]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, verify, sign, sign, verify, wrapKey]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [unwrapKey]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, unwrapKey]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [verify, sign, unwrapKey]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, verify, sign, sign, verify, unwrapKey]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [deriveKey]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, deriveKey]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [verify, sign, deriveKey]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, verify, sign, sign, verify, deriveKey]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [deriveBits]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, deriveBits]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [verify, sign, deriveBits]) >+PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, verify, sign, sign, verify, deriveBits]) >+PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: P-512}, false, [sign]) >+PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: P-512}, true, [sign]) >+PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: P-512}, false, [verify, sign]) >+PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: P-512}, true, [verify, sign]) >+PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: P-512}, false, []) >+PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: P-512}, true, []) >+PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: P-512}, false, [sign, verify, sign, sign, verify]) >+PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: P-512}, true, [sign, verify, sign, sign, verify]) >+PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: Curve25519}, false, [sign]) >+PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: Curve25519}, true, [sign]) >+PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: Curve25519}, false, [verify, sign]) >+PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: Curve25519}, true, [verify, sign]) >+PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: Curve25519}, false, []) >+PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: Curve25519}, true, []) >+PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: Curve25519}, false, [sign, verify, sign, sign, verify]) >+PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: Curve25519}, true, [sign, verify, sign, sign, verify]) >+PASS Empty usages: generateKey({name: ECDSA, namedCurve: P-256}, false, []) >+PASS Empty usages: generateKey({name: ECDSA, namedCurve: P-256}, true, []) >+PASS Empty usages: generateKey({name: ECDSA, namedCurve: P-384}, false, []) >+PASS Empty usages: generateKey({name: ECDSA, namedCurve: P-384}, true, []) >+FAIL Empty usages: generateKey({name: ECDSA, namedCurve: P-521}, false, []) assert_equals: Empty usages not supported expected "SyntaxError" but got "NotSupportedError" >+FAIL Empty usages: generateKey({name: ECDSA, namedCurve: P-521}, true, []) assert_equals: Empty usages not supported expected "SyntaxError" but got "NotSupportedError" >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_ECDSA.https.any.worker.html b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_ECDSA.https.any.worker.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_ECDSA.https.any.worker.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_ECDSA.https.worker-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_ECDSA.https.worker-expected.txt >deleted file mode 100644 >index e2532ee71c2782488784aad5f6a2445bc21cb2fc..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_ECDSA.https.worker-expected.txt >+++ /dev/null >@@ -1,420 +0,0 @@ >- >-PASS Bad algorithm: generateKey(AES, false, [decrypt]) >-PASS Bad algorithm: generateKey(AES, true, [decrypt]) >-PASS Bad algorithm: generateKey(AES, RED, [decrypt]) >-PASS Bad algorithm: generateKey(AES, 7, [decrypt]) >-PASS Bad algorithm: generateKey(AES, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey(AES, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey(AES, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey(AES, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey(AES, false, [sign]) >-PASS Bad algorithm: generateKey(AES, true, [sign]) >-PASS Bad algorithm: generateKey(AES, RED, [sign]) >-PASS Bad algorithm: generateKey(AES, 7, [sign]) >-PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey(AES, false, [deriveBits]) >-PASS Bad algorithm: generateKey(AES, true, [deriveBits]) >-PASS Bad algorithm: generateKey(AES, RED, [deriveBits]) >-PASS Bad algorithm: generateKey(AES, 7, [deriveBits]) >-PASS Bad algorithm: generateKey(AES, false, []) >-PASS Bad algorithm: generateKey(AES, true, []) >-PASS Bad algorithm: generateKey(AES, RED, []) >-PASS Bad algorithm: generateKey(AES, 7, []) >-PASS Bad algorithm: generateKey(AES, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey(AES, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey(AES, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey(AES, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, false, [decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, true, [decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, false, [sign]) >-PASS Bad algorithm: generateKey({name: AES}, true, [sign]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [sign]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [sign]) >-PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, false, []) >-PASS Bad algorithm: generateKey({name: AES}, true, []) >-PASS Bad algorithm: generateKey({name: AES}, RED, []) >-PASS Bad algorithm: generateKey({name: AES}, 7, []) >-PASS Bad algorithm: generateKey({name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, []) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, []) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, []) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, []) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, []) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, []) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, []) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, []) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [encrypt]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, encrypt]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [verify, sign, encrypt]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, verify, sign, sign, verify, encrypt]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [decrypt]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, decrypt]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [verify, sign, decrypt]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, verify, sign, sign, verify, decrypt]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [wrapKey]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, wrapKey]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [verify, sign, wrapKey]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, verify, sign, sign, verify, wrapKey]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [unwrapKey]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, unwrapKey]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [verify, sign, unwrapKey]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, verify, sign, sign, verify, unwrapKey]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [deriveKey]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, deriveKey]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [verify, sign, deriveKey]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, verify, sign, sign, verify, deriveKey]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [deriveBits]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, deriveBits]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [verify, sign, deriveBits]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, verify, sign, sign, verify, deriveBits]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [encrypt]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, encrypt]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [verify, sign, encrypt]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, verify, sign, sign, verify, encrypt]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [decrypt]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, decrypt]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [verify, sign, decrypt]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, verify, sign, sign, verify, decrypt]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [wrapKey]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, wrapKey]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [verify, sign, wrapKey]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, verify, sign, sign, verify, wrapKey]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [unwrapKey]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, unwrapKey]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [verify, sign, unwrapKey]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, verify, sign, sign, verify, unwrapKey]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [deriveKey]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, deriveKey]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [verify, sign, deriveKey]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, verify, sign, sign, verify, deriveKey]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [deriveBits]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, deriveBits]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [verify, sign, deriveBits]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, verify, sign, sign, verify, deriveBits]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [encrypt]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, encrypt]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [verify, sign, encrypt]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, verify, sign, sign, verify, encrypt]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [decrypt]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, decrypt]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [verify, sign, decrypt]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, verify, sign, sign, verify, decrypt]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [wrapKey]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, wrapKey]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [verify, sign, wrapKey]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, verify, sign, sign, verify, wrapKey]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [unwrapKey]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, unwrapKey]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [verify, sign, unwrapKey]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, verify, sign, sign, verify, unwrapKey]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [deriveKey]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, deriveKey]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [verify, sign, deriveKey]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, verify, sign, sign, verify, deriveKey]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [deriveBits]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, deriveBits]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [verify, sign, deriveBits]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, verify, sign, sign, verify, deriveBits]) >-PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: P-512}, false, [sign]) >-PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: P-512}, true, [sign]) >-PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: P-512}, false, [verify, sign]) >-PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: P-512}, true, [verify, sign]) >-PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: P-512}, false, []) >-PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: P-512}, true, []) >-PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: P-512}, false, [sign, verify, sign, sign, verify]) >-PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: P-512}, true, [sign, verify, sign, sign, verify]) >-PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: Curve25519}, false, [sign]) >-PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: Curve25519}, true, [sign]) >-PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: Curve25519}, false, [verify, sign]) >-PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: Curve25519}, true, [verify, sign]) >-PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: Curve25519}, false, []) >-PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: Curve25519}, true, []) >-PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: Curve25519}, false, [sign, verify, sign, sign, verify]) >-PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: Curve25519}, true, [sign, verify, sign, sign, verify]) >-PASS Empty usages: generateKey({name: ECDSA, namedCurve: P-256}, false, []) >-PASS Empty usages: generateKey({name: ECDSA, namedCurve: P-256}, true, []) >-PASS Empty usages: generateKey({name: ECDSA, namedCurve: P-384}, false, []) >-PASS Empty usages: generateKey({name: ECDSA, namedCurve: P-384}, true, []) >-FAIL Empty usages: generateKey({name: ECDSA, namedCurve: P-521}, false, []) assert_equals: Empty usages not supported expected "SyntaxError" but got "NotSupportedError" >-FAIL Empty usages: generateKey({name: ECDSA, namedCurve: P-521}, true, []) assert_equals: Empty usages not supported expected "SyntaxError" but got "NotSupportedError" >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_ECDSA.https.worker.html b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_ECDSA.https.worker.html >deleted file mode 100644 >index 2382913528e693b3a5d56c660a45060980b548c3..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_ECDSA.https.worker.html >+++ /dev/null >@@ -1 +0,0 @@ >-<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_ECDSA.https.worker.js b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_ECDSA.https.worker.js >deleted file mode 100644 >index a1f471141de052643c42609f089876498d1c624f..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_ECDSA.https.worker.js >+++ /dev/null >@@ -1,6 +0,0 @@ >-// META: timeout=long >-importScripts("/resources/testharness.js"); >-importScripts("../util/helpers.js"); >-importScripts("failures.js"); >-run_test(["ECDSA"]); >-done(); >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_HMAC.https.any-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_HMAC.https.any-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..a26c48a091a352061004ab35bb58b75250b788df >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_HMAC.https.any-expected.txt >@@ -0,0 +1,454 @@ >+ >+PASS Bad algorithm: generateKey(AES, false, [decrypt]) >+PASS Bad algorithm: generateKey(AES, true, [decrypt]) >+PASS Bad algorithm: generateKey(AES, RED, [decrypt]) >+PASS Bad algorithm: generateKey(AES, 7, [decrypt]) >+PASS Bad algorithm: generateKey(AES, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey(AES, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey(AES, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey(AES, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey(AES, false, [sign]) >+PASS Bad algorithm: generateKey(AES, true, [sign]) >+PASS Bad algorithm: generateKey(AES, RED, [sign]) >+PASS Bad algorithm: generateKey(AES, 7, [sign]) >+PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey(AES, false, [deriveBits]) >+PASS Bad algorithm: generateKey(AES, true, [deriveBits]) >+PASS Bad algorithm: generateKey(AES, RED, [deriveBits]) >+PASS Bad algorithm: generateKey(AES, 7, [deriveBits]) >+PASS Bad algorithm: generateKey(AES, false, []) >+PASS Bad algorithm: generateKey(AES, true, []) >+PASS Bad algorithm: generateKey(AES, RED, []) >+PASS Bad algorithm: generateKey(AES, 7, []) >+PASS Bad algorithm: generateKey(AES, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey(AES, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey(AES, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey(AES, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, false, [decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, true, [decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, false, [sign]) >+PASS Bad algorithm: generateKey({name: AES}, true, [sign]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [sign]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [sign]) >+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, false, []) >+PASS Bad algorithm: generateKey({name: AES}, true, []) >+PASS Bad algorithm: generateKey({name: AES}, RED, []) >+PASS Bad algorithm: generateKey({name: AES}, 7, []) >+PASS Bad algorithm: generateKey({name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, []) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, []) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, []) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, []) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, []) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, []) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, []) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, []) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [encrypt]) >+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, encrypt]) >+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, sign, encrypt]) >+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, encrypt]) >+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, verify, sign, verify, encrypt]) >+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [decrypt]) >+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, decrypt]) >+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, sign, decrypt]) >+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, decrypt]) >+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, verify, sign, verify, decrypt]) >+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [wrapKey]) >+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, wrapKey]) >+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, sign, wrapKey]) >+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, wrapKey]) >+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, verify, sign, verify, wrapKey]) >+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [unwrapKey]) >+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, unwrapKey]) >+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, sign, unwrapKey]) >+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, unwrapKey]) >+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, verify, sign, verify, unwrapKey]) >+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, sign, deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, verify, sign, verify, deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, sign, deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, verify, sign, verify, deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [encrypt]) >+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, encrypt]) >+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, sign, encrypt]) >+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, encrypt]) >+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, verify, sign, verify, encrypt]) >+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [decrypt]) >+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, decrypt]) >+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, sign, decrypt]) >+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, decrypt]) >+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, verify, sign, verify, decrypt]) >+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [wrapKey]) >+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, wrapKey]) >+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, sign, wrapKey]) >+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, wrapKey]) >+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, verify, sign, verify, wrapKey]) >+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [unwrapKey]) >+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, unwrapKey]) >+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, sign, unwrapKey]) >+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, unwrapKey]) >+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, verify, sign, verify, unwrapKey]) >+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, sign, deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, verify, sign, verify, deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, sign, deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, verify, sign, verify, deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [encrypt]) >+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, encrypt]) >+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, sign, encrypt]) >+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, encrypt]) >+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, verify, sign, verify, encrypt]) >+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [decrypt]) >+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, decrypt]) >+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, sign, decrypt]) >+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, decrypt]) >+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, verify, sign, verify, decrypt]) >+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [wrapKey]) >+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, wrapKey]) >+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, sign, wrapKey]) >+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, wrapKey]) >+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, verify, sign, verify, wrapKey]) >+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [unwrapKey]) >+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, unwrapKey]) >+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, sign, unwrapKey]) >+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, unwrapKey]) >+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, verify, sign, verify, unwrapKey]) >+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, sign, deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, verify, sign, verify, deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, sign, deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, verify, sign, verify, deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [encrypt]) >+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, encrypt]) >+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, sign, encrypt]) >+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, encrypt]) >+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, verify, sign, verify, encrypt]) >+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [decrypt]) >+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, decrypt]) >+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, sign, decrypt]) >+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, decrypt]) >+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, verify, sign, verify, decrypt]) >+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [wrapKey]) >+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, wrapKey]) >+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, sign, wrapKey]) >+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, wrapKey]) >+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, verify, sign, verify, wrapKey]) >+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [unwrapKey]) >+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, unwrapKey]) >+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, sign, unwrapKey]) >+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, unwrapKey]) >+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, verify, sign, verify, unwrapKey]) >+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, sign, deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, verify, sign, verify, deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, sign, deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, verify, sign, verify, deriveBits]) >+PASS Empty usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, false, []) >+PASS Empty usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, []) >+PASS Empty usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, false, []) >+PASS Empty usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, []) >+PASS Empty usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, false, []) >+PASS Empty usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, []) >+PASS Empty usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, false, []) >+PASS Empty usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, []) >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_HMAC.https.any.html b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_HMAC.https.any.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_HMAC.https.any.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_HMAC.https.any.js b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_HMAC.https.any.js >new file mode 100644 >index 0000000000000000000000000000000000000000..708d33beba4925a9ee2c402d5a0b80eb0dc36126 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_HMAC.https.any.js >@@ -0,0 +1,4 @@ >+// META: timeout=long >+// META: script=../util/helpers.js >+// META: script=failures.js >+run_test(["HMAC"]); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_HMAC.https.any.worker-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_HMAC.https.any.worker-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..a26c48a091a352061004ab35bb58b75250b788df >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_HMAC.https.any.worker-expected.txt >@@ -0,0 +1,454 @@ >+ >+PASS Bad algorithm: generateKey(AES, false, [decrypt]) >+PASS Bad algorithm: generateKey(AES, true, [decrypt]) >+PASS Bad algorithm: generateKey(AES, RED, [decrypt]) >+PASS Bad algorithm: generateKey(AES, 7, [decrypt]) >+PASS Bad algorithm: generateKey(AES, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey(AES, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey(AES, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey(AES, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey(AES, false, [sign]) >+PASS Bad algorithm: generateKey(AES, true, [sign]) >+PASS Bad algorithm: generateKey(AES, RED, [sign]) >+PASS Bad algorithm: generateKey(AES, 7, [sign]) >+PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey(AES, false, [deriveBits]) >+PASS Bad algorithm: generateKey(AES, true, [deriveBits]) >+PASS Bad algorithm: generateKey(AES, RED, [deriveBits]) >+PASS Bad algorithm: generateKey(AES, 7, [deriveBits]) >+PASS Bad algorithm: generateKey(AES, false, []) >+PASS Bad algorithm: generateKey(AES, true, []) >+PASS Bad algorithm: generateKey(AES, RED, []) >+PASS Bad algorithm: generateKey(AES, 7, []) >+PASS Bad algorithm: generateKey(AES, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey(AES, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey(AES, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey(AES, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, false, [decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, true, [decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, false, [sign]) >+PASS Bad algorithm: generateKey({name: AES}, true, [sign]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [sign]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [sign]) >+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, false, []) >+PASS Bad algorithm: generateKey({name: AES}, true, []) >+PASS Bad algorithm: generateKey({name: AES}, RED, []) >+PASS Bad algorithm: generateKey({name: AES}, 7, []) >+PASS Bad algorithm: generateKey({name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, []) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, []) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, []) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, []) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, []) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, []) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, []) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, []) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [encrypt]) >+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, encrypt]) >+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, sign, encrypt]) >+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, encrypt]) >+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, verify, sign, verify, encrypt]) >+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [decrypt]) >+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, decrypt]) >+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, sign, decrypt]) >+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, decrypt]) >+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, verify, sign, verify, decrypt]) >+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [wrapKey]) >+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, wrapKey]) >+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, sign, wrapKey]) >+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, wrapKey]) >+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, verify, sign, verify, wrapKey]) >+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [unwrapKey]) >+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, unwrapKey]) >+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, sign, unwrapKey]) >+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, unwrapKey]) >+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, verify, sign, verify, unwrapKey]) >+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, sign, deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, verify, sign, verify, deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, sign, deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, verify, sign, verify, deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [encrypt]) >+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, encrypt]) >+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, sign, encrypt]) >+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, encrypt]) >+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, verify, sign, verify, encrypt]) >+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [decrypt]) >+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, decrypt]) >+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, sign, decrypt]) >+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, decrypt]) >+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, verify, sign, verify, decrypt]) >+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [wrapKey]) >+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, wrapKey]) >+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, sign, wrapKey]) >+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, wrapKey]) >+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, verify, sign, verify, wrapKey]) >+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [unwrapKey]) >+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, unwrapKey]) >+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, sign, unwrapKey]) >+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, unwrapKey]) >+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, verify, sign, verify, unwrapKey]) >+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, sign, deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, verify, sign, verify, deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, sign, deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, verify, sign, verify, deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [encrypt]) >+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, encrypt]) >+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, sign, encrypt]) >+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, encrypt]) >+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, verify, sign, verify, encrypt]) >+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [decrypt]) >+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, decrypt]) >+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, sign, decrypt]) >+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, decrypt]) >+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, verify, sign, verify, decrypt]) >+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [wrapKey]) >+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, wrapKey]) >+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, sign, wrapKey]) >+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, wrapKey]) >+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, verify, sign, verify, wrapKey]) >+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [unwrapKey]) >+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, unwrapKey]) >+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, sign, unwrapKey]) >+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, unwrapKey]) >+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, verify, sign, verify, unwrapKey]) >+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, sign, deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, verify, sign, verify, deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, sign, deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, verify, sign, verify, deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [encrypt]) >+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, encrypt]) >+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, sign, encrypt]) >+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, encrypt]) >+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, verify, sign, verify, encrypt]) >+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [decrypt]) >+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, decrypt]) >+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, sign, decrypt]) >+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, decrypt]) >+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, verify, sign, verify, decrypt]) >+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [wrapKey]) >+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, wrapKey]) >+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, sign, wrapKey]) >+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, wrapKey]) >+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, verify, sign, verify, wrapKey]) >+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [unwrapKey]) >+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, unwrapKey]) >+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, sign, unwrapKey]) >+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, unwrapKey]) >+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, verify, sign, verify, unwrapKey]) >+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, sign, deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, verify, sign, verify, deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, sign, deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, verify, sign, verify, deriveBits]) >+PASS Empty usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, false, []) >+PASS Empty usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, []) >+PASS Empty usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, false, []) >+PASS Empty usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, []) >+PASS Empty usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, false, []) >+PASS Empty usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, []) >+PASS Empty usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, false, []) >+PASS Empty usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, []) >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_HMAC.https.any.worker.html b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_HMAC.https.any.worker.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_HMAC.https.any.worker.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_HMAC.https.worker-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_HMAC.https.worker-expected.txt >deleted file mode 100644 >index a26c48a091a352061004ab35bb58b75250b788df..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_HMAC.https.worker-expected.txt >+++ /dev/null >@@ -1,454 +0,0 @@ >- >-PASS Bad algorithm: generateKey(AES, false, [decrypt]) >-PASS Bad algorithm: generateKey(AES, true, [decrypt]) >-PASS Bad algorithm: generateKey(AES, RED, [decrypt]) >-PASS Bad algorithm: generateKey(AES, 7, [decrypt]) >-PASS Bad algorithm: generateKey(AES, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey(AES, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey(AES, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey(AES, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey(AES, false, [sign]) >-PASS Bad algorithm: generateKey(AES, true, [sign]) >-PASS Bad algorithm: generateKey(AES, RED, [sign]) >-PASS Bad algorithm: generateKey(AES, 7, [sign]) >-PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey(AES, false, [deriveBits]) >-PASS Bad algorithm: generateKey(AES, true, [deriveBits]) >-PASS Bad algorithm: generateKey(AES, RED, [deriveBits]) >-PASS Bad algorithm: generateKey(AES, 7, [deriveBits]) >-PASS Bad algorithm: generateKey(AES, false, []) >-PASS Bad algorithm: generateKey(AES, true, []) >-PASS Bad algorithm: generateKey(AES, RED, []) >-PASS Bad algorithm: generateKey(AES, 7, []) >-PASS Bad algorithm: generateKey(AES, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey(AES, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey(AES, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey(AES, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, false, [decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, true, [decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, false, [sign]) >-PASS Bad algorithm: generateKey({name: AES}, true, [sign]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [sign]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [sign]) >-PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, false, []) >-PASS Bad algorithm: generateKey({name: AES}, true, []) >-PASS Bad algorithm: generateKey({name: AES}, RED, []) >-PASS Bad algorithm: generateKey({name: AES}, 7, []) >-PASS Bad algorithm: generateKey({name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, []) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, []) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, []) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, []) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, []) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, []) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, []) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, []) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [encrypt]) >-PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, encrypt]) >-PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, sign, encrypt]) >-PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, encrypt]) >-PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, verify, sign, verify, encrypt]) >-PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [decrypt]) >-PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, decrypt]) >-PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, sign, decrypt]) >-PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, decrypt]) >-PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, verify, sign, verify, decrypt]) >-PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [wrapKey]) >-PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, wrapKey]) >-PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, sign, wrapKey]) >-PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, wrapKey]) >-PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, verify, sign, verify, wrapKey]) >-PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [unwrapKey]) >-PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, unwrapKey]) >-PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, sign, unwrapKey]) >-PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, unwrapKey]) >-PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, verify, sign, verify, unwrapKey]) >-PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, sign, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, verify, sign, verify, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, sign, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, verify, sign, verify, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [encrypt]) >-PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, encrypt]) >-PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, sign, encrypt]) >-PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, encrypt]) >-PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, verify, sign, verify, encrypt]) >-PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [decrypt]) >-PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, decrypt]) >-PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, sign, decrypt]) >-PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, decrypt]) >-PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, verify, sign, verify, decrypt]) >-PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [wrapKey]) >-PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, wrapKey]) >-PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, sign, wrapKey]) >-PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, wrapKey]) >-PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, verify, sign, verify, wrapKey]) >-PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [unwrapKey]) >-PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, unwrapKey]) >-PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, sign, unwrapKey]) >-PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, unwrapKey]) >-PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, verify, sign, verify, unwrapKey]) >-PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, sign, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, verify, sign, verify, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, sign, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, verify, sign, verify, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [encrypt]) >-PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, encrypt]) >-PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, sign, encrypt]) >-PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, encrypt]) >-PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, verify, sign, verify, encrypt]) >-PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [decrypt]) >-PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, decrypt]) >-PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, sign, decrypt]) >-PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, decrypt]) >-PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, verify, sign, verify, decrypt]) >-PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [wrapKey]) >-PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, wrapKey]) >-PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, sign, wrapKey]) >-PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, wrapKey]) >-PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, verify, sign, verify, wrapKey]) >-PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [unwrapKey]) >-PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, unwrapKey]) >-PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, sign, unwrapKey]) >-PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, unwrapKey]) >-PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, verify, sign, verify, unwrapKey]) >-PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, sign, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, verify, sign, verify, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, sign, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, verify, sign, verify, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [encrypt]) >-PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, encrypt]) >-PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, sign, encrypt]) >-PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, encrypt]) >-PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, verify, sign, verify, encrypt]) >-PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [decrypt]) >-PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, decrypt]) >-PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, sign, decrypt]) >-PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, decrypt]) >-PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, verify, sign, verify, decrypt]) >-PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [wrapKey]) >-PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, wrapKey]) >-PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, sign, wrapKey]) >-PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, wrapKey]) >-PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, verify, sign, verify, wrapKey]) >-PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [unwrapKey]) >-PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, unwrapKey]) >-PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, sign, unwrapKey]) >-PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, unwrapKey]) >-PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, verify, sign, verify, unwrapKey]) >-PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, sign, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, verify, sign, verify, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, sign, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, verify, sign, verify, deriveBits]) >-PASS Empty usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, false, []) >-PASS Empty usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, []) >-PASS Empty usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, false, []) >-PASS Empty usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, []) >-PASS Empty usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, false, []) >-PASS Empty usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, []) >-PASS Empty usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, false, []) >-PASS Empty usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, []) >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_HMAC.https.worker.html b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_HMAC.https.worker.html >deleted file mode 100644 >index 2382913528e693b3a5d56c660a45060980b548c3..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_HMAC.https.worker.html >+++ /dev/null >@@ -1 +0,0 @@ >-<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_HMAC.https.worker.js b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_HMAC.https.worker.js >deleted file mode 100644 >index 9dfbbb9c065a7352c667fc7a1d671dfe922a2f91..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_HMAC.https.worker.js >+++ /dev/null >@@ -1,6 +0,0 @@ >-// META: timeout=long >-importScripts("/resources/testharness.js"); >-importScripts("../util/helpers.js"); >-importScripts("failures.js"); >-run_test(["HMAC"]); >-done(); >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-OAEP.https.any-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-OAEP.https.any-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..d8342f45b1d63a2ac3f5e0278d9434ed0209be24 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-OAEP.https.any-expected.txt >@@ -0,0 +1,498 @@ >+ >+PASS Bad algorithm: generateKey(AES, false, [decrypt]) >+PASS Bad algorithm: generateKey(AES, true, [decrypt]) >+PASS Bad algorithm: generateKey(AES, RED, [decrypt]) >+PASS Bad algorithm: generateKey(AES, 7, [decrypt]) >+PASS Bad algorithm: generateKey(AES, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey(AES, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey(AES, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey(AES, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey(AES, false, [sign]) >+PASS Bad algorithm: generateKey(AES, true, [sign]) >+PASS Bad algorithm: generateKey(AES, RED, [sign]) >+PASS Bad algorithm: generateKey(AES, 7, [sign]) >+PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey(AES, false, [deriveBits]) >+PASS Bad algorithm: generateKey(AES, true, [deriveBits]) >+PASS Bad algorithm: generateKey(AES, RED, [deriveBits]) >+PASS Bad algorithm: generateKey(AES, 7, [deriveBits]) >+PASS Bad algorithm: generateKey(AES, false, []) >+PASS Bad algorithm: generateKey(AES, true, []) >+PASS Bad algorithm: generateKey(AES, RED, []) >+PASS Bad algorithm: generateKey(AES, 7, []) >+PASS Bad algorithm: generateKey(AES, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey(AES, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey(AES, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey(AES, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, false, [decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, true, [decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, false, [sign]) >+PASS Bad algorithm: generateKey({name: AES}, true, [sign]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [sign]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [sign]) >+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, false, []) >+PASS Bad algorithm: generateKey({name: AES}, true, []) >+PASS Bad algorithm: generateKey({name: AES}, RED, []) >+PASS Bad algorithm: generateKey({name: AES}, 7, []) >+PASS Bad algorithm: generateKey({name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, []) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, []) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, []) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, []) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, []) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, []) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, []) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, []) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, encrypt, sign]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, encrypt, sign]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, encrypt, sign]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, encrypt, sign]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, encrypt, sign]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, sign]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, sign]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, sign]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, sign]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, sign]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, encrypt, verify]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, encrypt, verify]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, encrypt, verify]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, encrypt, verify]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, encrypt, verify]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, verify]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, verify]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, verify]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, verify]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, verify]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, verify]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, encrypt, deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, encrypt, deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, encrypt, deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, encrypt, deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, encrypt, deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, encrypt, deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, encrypt, deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, encrypt, deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, encrypt, deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, encrypt, deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, encrypt, sign]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, encrypt, sign]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, encrypt, sign]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, encrypt, sign]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, encrypt, sign]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, sign]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, sign]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, sign]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, sign]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, sign]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, encrypt, verify]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, encrypt, verify]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, encrypt, verify]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, encrypt, verify]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, encrypt, verify]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, verify]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, verify]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, verify]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, verify]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, verify]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, verify]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, encrypt, deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, encrypt, deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, encrypt, deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, encrypt, deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, encrypt, deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, encrypt, deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, encrypt, deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, encrypt, deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, encrypt, deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, encrypt, deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, [decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, [decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, [wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, [wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, [unwrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, [unwrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, [unwrapKey, wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, [unwrapKey, wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, [unwrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, [unwrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, [decrypt]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, [decrypt]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, [wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, [wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, [unwrapKey, wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, [unwrapKey, wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, [unwrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, [unwrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, [unwrapKey, wrapKey]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, [unwrapKey, wrapKey]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, [unwrapKey]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, [unwrapKey]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, []) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, []) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [unwrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [unwrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [unwrapKey, wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [unwrapKey, wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [unwrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [unwrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [decrypt]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [decrypt]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [unwrapKey, wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [unwrapKey, wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [unwrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [unwrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [unwrapKey, wrapKey]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [unwrapKey, wrapKey]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [unwrapKey]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [unwrapKey]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, []) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, []) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >+PASS Empty usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >+PASS Empty usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >+PASS Empty usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >+PASS Empty usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-OAEP.https.any.html b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-OAEP.https.any.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-OAEP.https.any.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-OAEP.https.any.js b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-OAEP.https.any.js >new file mode 100644 >index 0000000000000000000000000000000000000000..4ec0ec20bac1cef5a61ae8ec3e735e689bda5af1 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-OAEP.https.any.js >@@ -0,0 +1,4 @@ >+// META: timeout=long >+// META: script=../util/helpers.js >+// META: script=failures.js >+run_test(["RSA-OAEP"]); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-OAEP.https.any.worker-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-OAEP.https.any.worker-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..d8342f45b1d63a2ac3f5e0278d9434ed0209be24 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-OAEP.https.any.worker-expected.txt >@@ -0,0 +1,498 @@ >+ >+PASS Bad algorithm: generateKey(AES, false, [decrypt]) >+PASS Bad algorithm: generateKey(AES, true, [decrypt]) >+PASS Bad algorithm: generateKey(AES, RED, [decrypt]) >+PASS Bad algorithm: generateKey(AES, 7, [decrypt]) >+PASS Bad algorithm: generateKey(AES, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey(AES, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey(AES, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey(AES, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey(AES, false, [sign]) >+PASS Bad algorithm: generateKey(AES, true, [sign]) >+PASS Bad algorithm: generateKey(AES, RED, [sign]) >+PASS Bad algorithm: generateKey(AES, 7, [sign]) >+PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey(AES, false, [deriveBits]) >+PASS Bad algorithm: generateKey(AES, true, [deriveBits]) >+PASS Bad algorithm: generateKey(AES, RED, [deriveBits]) >+PASS Bad algorithm: generateKey(AES, 7, [deriveBits]) >+PASS Bad algorithm: generateKey(AES, false, []) >+PASS Bad algorithm: generateKey(AES, true, []) >+PASS Bad algorithm: generateKey(AES, RED, []) >+PASS Bad algorithm: generateKey(AES, 7, []) >+PASS Bad algorithm: generateKey(AES, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey(AES, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey(AES, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey(AES, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, false, [decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, true, [decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, false, [sign]) >+PASS Bad algorithm: generateKey({name: AES}, true, [sign]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [sign]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [sign]) >+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, false, []) >+PASS Bad algorithm: generateKey({name: AES}, true, []) >+PASS Bad algorithm: generateKey({name: AES}, RED, []) >+PASS Bad algorithm: generateKey({name: AES}, 7, []) >+PASS Bad algorithm: generateKey({name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, []) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, []) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, []) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, []) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, []) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, []) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, []) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, []) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, encrypt, sign]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, encrypt, sign]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, encrypt, sign]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, encrypt, sign]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, encrypt, sign]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, sign]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, sign]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, sign]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, sign]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, sign]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, encrypt, verify]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, encrypt, verify]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, encrypt, verify]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, encrypt, verify]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, encrypt, verify]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, verify]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, verify]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, verify]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, verify]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, verify]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, verify]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, encrypt, deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, encrypt, deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, encrypt, deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, encrypt, deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, encrypt, deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, encrypt, deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, encrypt, deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, encrypt, deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, encrypt, deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, encrypt, deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, encrypt, sign]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, encrypt, sign]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, encrypt, sign]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, encrypt, sign]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, encrypt, sign]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, sign]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, sign]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, sign]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, sign]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, sign]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, encrypt, verify]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, encrypt, verify]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, encrypt, verify]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, encrypt, verify]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, encrypt, verify]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, verify]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, verify]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, verify]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, verify]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, verify]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, verify]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, encrypt, deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, encrypt, deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, encrypt, deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, encrypt, deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, encrypt, deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, encrypt, deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, encrypt, deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, encrypt, deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, encrypt, deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, encrypt, deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, [decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, [decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, [wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, [wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, [unwrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, [unwrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, [unwrapKey, wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, [unwrapKey, wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, [unwrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, [unwrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, [decrypt]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, [decrypt]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, [wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, [wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, [unwrapKey, wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, [unwrapKey, wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, [unwrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, [unwrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, [unwrapKey, wrapKey]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, [unwrapKey, wrapKey]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, [unwrapKey]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, [unwrapKey]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, []) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, []) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [unwrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [unwrapKey, decrypt, encrypt]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [unwrapKey, wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [unwrapKey, wrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [unwrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [unwrapKey, encrypt]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [decrypt]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [decrypt]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [unwrapKey, wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [unwrapKey, wrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [unwrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [unwrapKey, decrypt]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [unwrapKey, wrapKey]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [unwrapKey, wrapKey]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [unwrapKey]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [unwrapKey]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, []) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, []) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >+PASS Empty usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >+PASS Empty usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >+PASS Empty usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >+PASS Empty usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-OAEP.https.any.worker.html b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-OAEP.https.any.worker.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-OAEP.https.any.worker.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-OAEP.https.worker-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-OAEP.https.worker-expected.txt >deleted file mode 100644 >index d8342f45b1d63a2ac3f5e0278d9434ed0209be24..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-OAEP.https.worker-expected.txt >+++ /dev/null >@@ -1,498 +0,0 @@ >- >-PASS Bad algorithm: generateKey(AES, false, [decrypt]) >-PASS Bad algorithm: generateKey(AES, true, [decrypt]) >-PASS Bad algorithm: generateKey(AES, RED, [decrypt]) >-PASS Bad algorithm: generateKey(AES, 7, [decrypt]) >-PASS Bad algorithm: generateKey(AES, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey(AES, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey(AES, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey(AES, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey(AES, false, [sign]) >-PASS Bad algorithm: generateKey(AES, true, [sign]) >-PASS Bad algorithm: generateKey(AES, RED, [sign]) >-PASS Bad algorithm: generateKey(AES, 7, [sign]) >-PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey(AES, false, [deriveBits]) >-PASS Bad algorithm: generateKey(AES, true, [deriveBits]) >-PASS Bad algorithm: generateKey(AES, RED, [deriveBits]) >-PASS Bad algorithm: generateKey(AES, 7, [deriveBits]) >-PASS Bad algorithm: generateKey(AES, false, []) >-PASS Bad algorithm: generateKey(AES, true, []) >-PASS Bad algorithm: generateKey(AES, RED, []) >-PASS Bad algorithm: generateKey(AES, 7, []) >-PASS Bad algorithm: generateKey(AES, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey(AES, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey(AES, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey(AES, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, false, [decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, true, [decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, false, [sign]) >-PASS Bad algorithm: generateKey({name: AES}, true, [sign]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [sign]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [sign]) >-PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, false, []) >-PASS Bad algorithm: generateKey({name: AES}, true, []) >-PASS Bad algorithm: generateKey({name: AES}, RED, []) >-PASS Bad algorithm: generateKey({name: AES}, 7, []) >-PASS Bad algorithm: generateKey({name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, []) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, []) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, []) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, []) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, []) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, []) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, []) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, []) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, encrypt, sign]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, encrypt, sign]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, sign]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, sign]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, sign]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, sign]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, sign]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, encrypt, verify]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, encrypt, verify]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, verify]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, verify]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, verify]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, verify]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, verify]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, verify]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, encrypt, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, encrypt, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, encrypt, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, encrypt, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, encrypt, sign]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, encrypt, sign]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, sign]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, sign]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, sign]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, sign]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, sign]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, encrypt, verify]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, encrypt, verify]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, verify]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, verify]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, verify]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, verify]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, verify]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, verify]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, encrypt, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, encrypt, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, encrypt, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, encrypt, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, [decrypt]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, [decrypt]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, [unwrapKey]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, [unwrapKey]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, []) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, []) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [decrypt]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [decrypt]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [unwrapKey]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [unwrapKey]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, []) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, []) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Empty usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >-PASS Empty usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >-PASS Empty usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >-PASS Empty usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-OAEP.https.worker.html b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-OAEP.https.worker.html >deleted file mode 100644 >index 2382913528e693b3a5d56c660a45060980b548c3..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-OAEP.https.worker.html >+++ /dev/null >@@ -1 +0,0 @@ >-<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-OAEP.https.worker.js b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-OAEP.https.worker.js >deleted file mode 100644 >index 39de6d6efecf7d28f9113cd44ea03749f65daf11..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-OAEP.https.worker.js >+++ /dev/null >@@ -1,6 +0,0 @@ >-// META: timeout=long >-importScripts("/resources/testharness.js"); >-importScripts("../util/helpers.js"); >-importScripts("failures.js"); >-run_test(["RSA-OAEP"]); >-done(); >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-PSS.https.any-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-PSS.https.any-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..037f0956f5d4536ef735ff168015d219d3020a50 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-PSS.https.any-expected.txt >@@ -0,0 +1,394 @@ >+ >+PASS Bad algorithm: generateKey(AES, false, [decrypt]) >+PASS Bad algorithm: generateKey(AES, true, [decrypt]) >+PASS Bad algorithm: generateKey(AES, RED, [decrypt]) >+PASS Bad algorithm: generateKey(AES, 7, [decrypt]) >+PASS Bad algorithm: generateKey(AES, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey(AES, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey(AES, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey(AES, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey(AES, false, [sign]) >+PASS Bad algorithm: generateKey(AES, true, [sign]) >+PASS Bad algorithm: generateKey(AES, RED, [sign]) >+PASS Bad algorithm: generateKey(AES, 7, [sign]) >+PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey(AES, false, [deriveBits]) >+PASS Bad algorithm: generateKey(AES, true, [deriveBits]) >+PASS Bad algorithm: generateKey(AES, RED, [deriveBits]) >+PASS Bad algorithm: generateKey(AES, 7, [deriveBits]) >+PASS Bad algorithm: generateKey(AES, false, []) >+PASS Bad algorithm: generateKey(AES, true, []) >+PASS Bad algorithm: generateKey(AES, RED, []) >+PASS Bad algorithm: generateKey(AES, 7, []) >+PASS Bad algorithm: generateKey(AES, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey(AES, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey(AES, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey(AES, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, false, [decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, true, [decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, false, [sign]) >+PASS Bad algorithm: generateKey({name: AES}, true, [sign]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [sign]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [sign]) >+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, false, []) >+PASS Bad algorithm: generateKey({name: AES}, true, []) >+PASS Bad algorithm: generateKey({name: AES}, RED, []) >+PASS Bad algorithm: generateKey({name: AES}, 7, []) >+PASS Bad algorithm: generateKey({name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, []) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, []) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, []) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, []) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, []) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, []) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, []) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, []) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, encrypt]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, encrypt]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, encrypt]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, decrypt]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, decrypt]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, wrapKey]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, wrapKey]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, wrapKey]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, unwrapKey]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, unwrapKey]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, unwrapKey]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, encrypt]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, encrypt]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, encrypt]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, decrypt]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, decrypt]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, wrapKey]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, wrapKey]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, wrapKey]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, unwrapKey]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, unwrapKey]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, unwrapKey]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, deriveBits]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1}}, false, [sign]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1}}, true, [sign]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1}}, false, [verify, sign]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1}}, true, [verify, sign]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1}}, false, []) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1}}, true, []) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1}}, false, [sign, verify, sign, sign, verify]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1}}, true, [sign, verify, sign, sign, verify]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [sign]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [sign]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [verify, sign]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [verify, sign]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 0}}, false, []) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 0}}, true, []) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [sign, verify, sign, sign, verify]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [sign, verify, sign, sign, verify]) >+PASS Empty usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >+PASS Empty usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >+PASS Empty usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >+PASS Empty usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-PSS.https.any.html b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-PSS.https.any.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-PSS.https.any.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-PSS.https.any.js b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-PSS.https.any.js >new file mode 100644 >index 0000000000000000000000000000000000000000..557b5785e348ee41057d61d89ea088e35aa1279b >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-PSS.https.any.js >@@ -0,0 +1,4 @@ >+// META: timeout=long >+// META: script=../util/helpers.js >+// META: script=failures.js >+run_test(["RSA-PSS"]); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-PSS.https.any.worker-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-PSS.https.any.worker-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..037f0956f5d4536ef735ff168015d219d3020a50 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-PSS.https.any.worker-expected.txt >@@ -0,0 +1,394 @@ >+ >+PASS Bad algorithm: generateKey(AES, false, [decrypt]) >+PASS Bad algorithm: generateKey(AES, true, [decrypt]) >+PASS Bad algorithm: generateKey(AES, RED, [decrypt]) >+PASS Bad algorithm: generateKey(AES, 7, [decrypt]) >+PASS Bad algorithm: generateKey(AES, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey(AES, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey(AES, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey(AES, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey(AES, false, [sign]) >+PASS Bad algorithm: generateKey(AES, true, [sign]) >+PASS Bad algorithm: generateKey(AES, RED, [sign]) >+PASS Bad algorithm: generateKey(AES, 7, [sign]) >+PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey(AES, false, [deriveBits]) >+PASS Bad algorithm: generateKey(AES, true, [deriveBits]) >+PASS Bad algorithm: generateKey(AES, RED, [deriveBits]) >+PASS Bad algorithm: generateKey(AES, 7, [deriveBits]) >+PASS Bad algorithm: generateKey(AES, false, []) >+PASS Bad algorithm: generateKey(AES, true, []) >+PASS Bad algorithm: generateKey(AES, RED, []) >+PASS Bad algorithm: generateKey(AES, 7, []) >+PASS Bad algorithm: generateKey(AES, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey(AES, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey(AES, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey(AES, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, false, [decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, true, [decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, false, [sign]) >+PASS Bad algorithm: generateKey({name: AES}, true, [sign]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [sign]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [sign]) >+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, false, []) >+PASS Bad algorithm: generateKey({name: AES}, true, []) >+PASS Bad algorithm: generateKey({name: AES}, RED, []) >+PASS Bad algorithm: generateKey({name: AES}, 7, []) >+PASS Bad algorithm: generateKey({name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, []) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, []) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, []) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, []) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, []) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, []) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, []) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, []) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, encrypt]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, encrypt]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, encrypt]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, decrypt]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, decrypt]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, wrapKey]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, wrapKey]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, wrapKey]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, unwrapKey]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, unwrapKey]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, unwrapKey]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, encrypt]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, encrypt]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, encrypt]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, decrypt]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, decrypt]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, wrapKey]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, wrapKey]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, wrapKey]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, unwrapKey]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, unwrapKey]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, unwrapKey]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, deriveBits]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1}}, false, [sign]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1}}, true, [sign]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1}}, false, [verify, sign]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1}}, true, [verify, sign]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1}}, false, []) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1}}, true, []) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1}}, false, [sign, verify, sign, sign, verify]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1}}, true, [sign, verify, sign, sign, verify]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [sign]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [sign]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [verify, sign]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [verify, sign]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 0}}, false, []) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 0}}, true, []) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [sign, verify, sign, sign, verify]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [sign, verify, sign, sign, verify]) >+PASS Empty usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >+PASS Empty usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >+PASS Empty usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >+PASS Empty usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-PSS.https.any.worker.html b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-PSS.https.any.worker.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-PSS.https.any.worker.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-PSS.https.worker-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-PSS.https.worker-expected.txt >deleted file mode 100644 >index 96c93d4466644c64a4a9c572f28ae98b10d4b19d..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-PSS.https.worker-expected.txt >+++ /dev/null >@@ -1,394 +0,0 @@ >- >-PASS Bad algorithm: generateKey(AES, false, [decrypt]) >-PASS Bad algorithm: generateKey(AES, true, [decrypt]) >-PASS Bad algorithm: generateKey(AES, RED, [decrypt]) >-PASS Bad algorithm: generateKey(AES, 7, [decrypt]) >-PASS Bad algorithm: generateKey(AES, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey(AES, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey(AES, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey(AES, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey(AES, false, [sign]) >-PASS Bad algorithm: generateKey(AES, true, [sign]) >-PASS Bad algorithm: generateKey(AES, RED, [sign]) >-PASS Bad algorithm: generateKey(AES, 7, [sign]) >-PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey(AES, false, [deriveBits]) >-PASS Bad algorithm: generateKey(AES, true, [deriveBits]) >-PASS Bad algorithm: generateKey(AES, RED, [deriveBits]) >-PASS Bad algorithm: generateKey(AES, 7, [deriveBits]) >-PASS Bad algorithm: generateKey(AES, false, []) >-PASS Bad algorithm: generateKey(AES, true, []) >-PASS Bad algorithm: generateKey(AES, RED, []) >-PASS Bad algorithm: generateKey(AES, 7, []) >-PASS Bad algorithm: generateKey(AES, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey(AES, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey(AES, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey(AES, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, false, [decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, true, [decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, false, [sign]) >-PASS Bad algorithm: generateKey({name: AES}, true, [sign]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [sign]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [sign]) >-PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, false, []) >-PASS Bad algorithm: generateKey({name: AES}, true, []) >-PASS Bad algorithm: generateKey({name: AES}, RED, []) >-PASS Bad algorithm: generateKey({name: AES}, 7, []) >-PASS Bad algorithm: generateKey({name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, []) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, []) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, []) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, []) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, []) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, []) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, []) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, []) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt]) assert_equals: Bad usages not supported expected "SyntaxError" but got "NotSupportedError" >-FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, encrypt]) assert_equals: Bad usages not supported expected "SyntaxError" but got "NotSupportedError" >-FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, encrypt]) assert_equals: Bad usages not supported expected "SyntaxError" but got "NotSupportedError" >-FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, encrypt]) assert_equals: Bad usages not supported expected "SyntaxError" but got "NotSupportedError" >-FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) assert_equals: Bad usages not supported expected "SyntaxError" but got "NotSupportedError" >-FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) assert_equals: Bad usages not supported expected "SyntaxError" but got "NotSupportedError" >-FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, decrypt]) assert_equals: Bad usages not supported expected "SyntaxError" but got "NotSupportedError" >-FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, decrypt]) assert_equals: Bad usages not supported expected "SyntaxError" but got "NotSupportedError" >-FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey]) assert_equals: Bad usages not supported expected "SyntaxError" but got "NotSupportedError" >-FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, wrapKey]) assert_equals: Bad usages not supported expected "SyntaxError" but got "NotSupportedError" >-FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, wrapKey]) assert_equals: Bad usages not supported expected "SyntaxError" but got "NotSupportedError" >-FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, wrapKey]) assert_equals: Bad usages not supported expected "SyntaxError" but got "NotSupportedError" >-FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey]) assert_equals: Bad usages not supported expected "SyntaxError" but got "NotSupportedError" >-FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, unwrapKey]) assert_equals: Bad usages not supported expected "SyntaxError" but got "NotSupportedError" >-FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, unwrapKey]) assert_equals: Bad usages not supported expected "SyntaxError" but got "NotSupportedError" >-FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, unwrapKey]) assert_equals: Bad usages not supported expected "SyntaxError" but got "NotSupportedError" >-FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveKey]) assert_equals: Bad usages not supported expected "SyntaxError" but got "NotSupportedError" >-FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, deriveKey]) assert_equals: Bad usages not supported expected "SyntaxError" but got "NotSupportedError" >-FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, deriveKey]) assert_equals: Bad usages not supported expected "SyntaxError" but got "NotSupportedError" >-FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, deriveKey]) assert_equals: Bad usages not supported expected "SyntaxError" but got "NotSupportedError" >-FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) assert_equals: Bad usages not supported expected "SyntaxError" but got "NotSupportedError" >-FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, deriveBits]) assert_equals: Bad usages not supported expected "SyntaxError" but got "NotSupportedError" >-FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, deriveBits]) assert_equals: Bad usages not supported expected "SyntaxError" but got "NotSupportedError" >-FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, deriveBits]) assert_equals: Bad usages not supported expected "SyntaxError" but got "NotSupportedError" >-FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt]) assert_equals: Bad usages not supported expected "SyntaxError" but got "NotSupportedError" >-FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, encrypt]) assert_equals: Bad usages not supported expected "SyntaxError" but got "NotSupportedError" >-FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, encrypt]) assert_equals: Bad usages not supported expected "SyntaxError" but got "NotSupportedError" >-FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, encrypt]) assert_equals: Bad usages not supported expected "SyntaxError" but got "NotSupportedError" >-FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) assert_equals: Bad usages not supported expected "SyntaxError" but got "NotSupportedError" >-FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) assert_equals: Bad usages not supported expected "SyntaxError" but got "NotSupportedError" >-FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, decrypt]) assert_equals: Bad usages not supported expected "SyntaxError" but got "NotSupportedError" >-FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, decrypt]) assert_equals: Bad usages not supported expected "SyntaxError" but got "NotSupportedError" >-FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey]) assert_equals: Bad usages not supported expected "SyntaxError" but got "NotSupportedError" >-FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, wrapKey]) assert_equals: Bad usages not supported expected "SyntaxError" but got "NotSupportedError" >-FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, wrapKey]) assert_equals: Bad usages not supported expected "SyntaxError" but got "NotSupportedError" >-FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, wrapKey]) assert_equals: Bad usages not supported expected "SyntaxError" but got "NotSupportedError" >-FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey]) assert_equals: Bad usages not supported expected "SyntaxError" but got "NotSupportedError" >-FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, unwrapKey]) assert_equals: Bad usages not supported expected "SyntaxError" but got "NotSupportedError" >-FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, unwrapKey]) assert_equals: Bad usages not supported expected "SyntaxError" but got "NotSupportedError" >-FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, unwrapKey]) assert_equals: Bad usages not supported expected "SyntaxError" but got "NotSupportedError" >-FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveKey]) assert_equals: Bad usages not supported expected "SyntaxError" but got "NotSupportedError" >-FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, deriveKey]) assert_equals: Bad usages not supported expected "SyntaxError" but got "NotSupportedError" >-FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, deriveKey]) assert_equals: Bad usages not supported expected "SyntaxError" but got "NotSupportedError" >-FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, deriveKey]) assert_equals: Bad usages not supported expected "SyntaxError" but got "NotSupportedError" >-FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) assert_equals: Bad usages not supported expected "SyntaxError" but got "NotSupportedError" >-FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, deriveBits]) assert_equals: Bad usages not supported expected "SyntaxError" but got "NotSupportedError" >-FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, deriveBits]) assert_equals: Bad usages not supported expected "SyntaxError" but got "NotSupportedError" >-FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, deriveBits]) assert_equals: Bad usages not supported expected "SyntaxError" but got "NotSupportedError" >-FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1}}, false, [sign]) assert_equals: Bad algorithm property not supported expected "OperationError" but got "NotSupportedError" >-FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1}}, true, [sign]) assert_equals: Bad algorithm property not supported expected "OperationError" but got "NotSupportedError" >-FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1}}, false, [verify, sign]) assert_equals: Bad algorithm property not supported expected "OperationError" but got "NotSupportedError" >-FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1}}, true, [verify, sign]) assert_equals: Bad algorithm property not supported expected "OperationError" but got "NotSupportedError" >-FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1}}, false, []) assert_equals: Bad algorithm property not supported expected "OperationError" but got "NotSupportedError" >-FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1}}, true, []) assert_equals: Bad algorithm property not supported expected "OperationError" but got "NotSupportedError" >-FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1}}, false, [sign, verify, sign, sign, verify]) assert_equals: Bad algorithm property not supported expected "OperationError" but got "NotSupportedError" >-FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1}}, true, [sign, verify, sign, sign, verify]) assert_equals: Bad algorithm property not supported expected "OperationError" but got "NotSupportedError" >-FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [sign]) assert_equals: Bad algorithm property not supported expected "OperationError" but got "NotSupportedError" >-FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [sign]) assert_equals: Bad algorithm property not supported expected "OperationError" but got "NotSupportedError" >-FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [verify, sign]) assert_equals: Bad algorithm property not supported expected "OperationError" but got "NotSupportedError" >-FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [verify, sign]) assert_equals: Bad algorithm property not supported expected "OperationError" but got "NotSupportedError" >-FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 0}}, false, []) assert_equals: Bad algorithm property not supported expected "OperationError" but got "NotSupportedError" >-FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 0}}, true, []) assert_equals: Bad algorithm property not supported expected "OperationError" but got "NotSupportedError" >-FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [sign, verify, sign, sign, verify]) assert_equals: Bad algorithm property not supported expected "OperationError" but got "NotSupportedError" >-FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [sign, verify, sign, sign, verify]) assert_equals: Bad algorithm property not supported expected "OperationError" but got "NotSupportedError" >-FAIL Empty usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) assert_equals: Empty usages not supported expected "SyntaxError" but got "NotSupportedError" >-FAIL Empty usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) assert_equals: Empty usages not supported expected "SyntaxError" but got "NotSupportedError" >-FAIL Empty usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) assert_equals: Empty usages not supported expected "SyntaxError" but got "NotSupportedError" >-FAIL Empty usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) assert_equals: Empty usages not supported expected "SyntaxError" but got "NotSupportedError" >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-PSS.https.worker.html b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-PSS.https.worker.html >deleted file mode 100644 >index 2382913528e693b3a5d56c660a45060980b548c3..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-PSS.https.worker.html >+++ /dev/null >@@ -1 +0,0 @@ >-<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-PSS.https.worker.js b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-PSS.https.worker.js >deleted file mode 100644 >index 8b1110d7f096b08585126a2a96f8a8bb2e5f44fd..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-PSS.https.worker.js >+++ /dev/null >@@ -1,6 +0,0 @@ >-// META: timeout=long >-importScripts("/resources/testharness.js"); >-importScripts("../util/helpers.js"); >-importScripts("failures.js"); >-run_test(["RSA-PSS"]); >-done(); >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSASSA-PKCS1-v1_5.https.any-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSASSA-PKCS1-v1_5.https.any-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..be08f1153e8896f2f18ca12fa7bb2415dce8f135 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSASSA-PKCS1-v1_5.https.any-expected.txt >@@ -0,0 +1,394 @@ >+ >+PASS Bad algorithm: generateKey(AES, false, [decrypt]) >+PASS Bad algorithm: generateKey(AES, true, [decrypt]) >+PASS Bad algorithm: generateKey(AES, RED, [decrypt]) >+PASS Bad algorithm: generateKey(AES, 7, [decrypt]) >+PASS Bad algorithm: generateKey(AES, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey(AES, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey(AES, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey(AES, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey(AES, false, [sign]) >+PASS Bad algorithm: generateKey(AES, true, [sign]) >+PASS Bad algorithm: generateKey(AES, RED, [sign]) >+PASS Bad algorithm: generateKey(AES, 7, [sign]) >+PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey(AES, false, [deriveBits]) >+PASS Bad algorithm: generateKey(AES, true, [deriveBits]) >+PASS Bad algorithm: generateKey(AES, RED, [deriveBits]) >+PASS Bad algorithm: generateKey(AES, 7, [deriveBits]) >+PASS Bad algorithm: generateKey(AES, false, []) >+PASS Bad algorithm: generateKey(AES, true, []) >+PASS Bad algorithm: generateKey(AES, RED, []) >+PASS Bad algorithm: generateKey(AES, 7, []) >+PASS Bad algorithm: generateKey(AES, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey(AES, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey(AES, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey(AES, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, false, [decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, true, [decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, false, [sign]) >+PASS Bad algorithm: generateKey({name: AES}, true, [sign]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [sign]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [sign]) >+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, false, []) >+PASS Bad algorithm: generateKey({name: AES}, true, []) >+PASS Bad algorithm: generateKey({name: AES}, RED, []) >+PASS Bad algorithm: generateKey({name: AES}, 7, []) >+PASS Bad algorithm: generateKey({name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, []) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, []) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, []) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, []) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, []) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, []) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, []) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, []) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, encrypt]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, encrypt]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, encrypt]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, decrypt]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, decrypt]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, wrapKey]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, wrapKey]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, wrapKey]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, unwrapKey]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, unwrapKey]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, unwrapKey]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, encrypt]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, encrypt]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, encrypt]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, decrypt]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, decrypt]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, wrapKey]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, wrapKey]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, wrapKey]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, unwrapKey]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, unwrapKey]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, unwrapKey]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, deriveBits]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1}}, false, [sign]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1}}, true, [sign]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1}}, false, [verify, sign]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1}}, true, [verify, sign]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1}}, false, []) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1}}, true, []) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1}}, false, [sign, verify, sign, sign, verify]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1}}, true, [sign, verify, sign, sign, verify]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [sign]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [sign]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [verify, sign]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [verify, sign]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 0}}, false, []) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 0}}, true, []) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [sign, verify, sign, sign, verify]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [sign, verify, sign, sign, verify]) >+PASS Empty usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >+PASS Empty usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >+PASS Empty usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >+PASS Empty usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSASSA-PKCS1-v1_5.https.any.html b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSASSA-PKCS1-v1_5.https.any.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSASSA-PKCS1-v1_5.https.any.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSASSA-PKCS1-v1_5.https.any.js b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSASSA-PKCS1-v1_5.https.any.js >new file mode 100644 >index 0000000000000000000000000000000000000000..45771bf0d46eadf6cb8a852ee77538f5f8891aa8 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSASSA-PKCS1-v1_5.https.any.js >@@ -0,0 +1,4 @@ >+// META: timeout=long >+// META: script=../util/helpers.js >+// META: script=failures.js >+run_test(["RSASSA-PKCS1-v1_5"]); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSASSA-PKCS1-v1_5.https.any.worker-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSASSA-PKCS1-v1_5.https.any.worker-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..be08f1153e8896f2f18ca12fa7bb2415dce8f135 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSASSA-PKCS1-v1_5.https.any.worker-expected.txt >@@ -0,0 +1,394 @@ >+ >+PASS Bad algorithm: generateKey(AES, false, [decrypt]) >+PASS Bad algorithm: generateKey(AES, true, [decrypt]) >+PASS Bad algorithm: generateKey(AES, RED, [decrypt]) >+PASS Bad algorithm: generateKey(AES, 7, [decrypt]) >+PASS Bad algorithm: generateKey(AES, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey(AES, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey(AES, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey(AES, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey(AES, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey(AES, false, [sign]) >+PASS Bad algorithm: generateKey(AES, true, [sign]) >+PASS Bad algorithm: generateKey(AES, RED, [sign]) >+PASS Bad algorithm: generateKey(AES, 7, [sign]) >+PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey(AES, false, [deriveBits]) >+PASS Bad algorithm: generateKey(AES, true, [deriveBits]) >+PASS Bad algorithm: generateKey(AES, RED, [deriveBits]) >+PASS Bad algorithm: generateKey(AES, 7, [deriveBits]) >+PASS Bad algorithm: generateKey(AES, false, []) >+PASS Bad algorithm: generateKey(AES, true, []) >+PASS Bad algorithm: generateKey(AES, RED, []) >+PASS Bad algorithm: generateKey(AES, 7, []) >+PASS Bad algorithm: generateKey(AES, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey(AES, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey(AES, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey(AES, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, false, [decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, true, [decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: AES}, false, [sign]) >+PASS Bad algorithm: generateKey({name: AES}, true, [sign]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [sign]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [sign]) >+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, false, []) >+PASS Bad algorithm: generateKey({name: AES}, true, []) >+PASS Bad algorithm: generateKey({name: AES}, RED, []) >+PASS Bad algorithm: generateKey({name: AES}, 7, []) >+PASS Bad algorithm: generateKey({name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, []) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, []) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, []) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, []) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, []) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, decrypt]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, []) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, []) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, []) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, []) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, encrypt]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, encrypt]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, encrypt]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, decrypt]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, decrypt]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, wrapKey]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, wrapKey]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, wrapKey]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, unwrapKey]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, unwrapKey]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, unwrapKey]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, encrypt]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, encrypt]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, encrypt]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, decrypt]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, decrypt]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, wrapKey]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, wrapKey]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, wrapKey]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, unwrapKey]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, unwrapKey]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, unwrapKey]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, deriveKey]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, deriveBits]) >+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, deriveBits]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1}}, false, [sign]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1}}, true, [sign]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1}}, false, [verify, sign]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1}}, true, [verify, sign]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1}}, false, []) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1}}, true, []) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1}}, false, [sign, verify, sign, sign, verify]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1}}, true, [sign, verify, sign, sign, verify]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [sign]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [sign]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [verify, sign]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [verify, sign]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 0}}, false, []) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 0}}, true, []) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [sign, verify, sign, sign, verify]) >+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [sign, verify, sign, sign, verify]) >+PASS Empty usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >+PASS Empty usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >+PASS Empty usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >+PASS Empty usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSASSA-PKCS1-v1_5.https.any.worker.html b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSASSA-PKCS1-v1_5.https.any.worker.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSASSA-PKCS1-v1_5.https.any.worker.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSASSA-PKCS1-v1_5.https.worker-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSASSA-PKCS1-v1_5.https.worker-expected.txt >deleted file mode 100644 >index be08f1153e8896f2f18ca12fa7bb2415dce8f135..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSASSA-PKCS1-v1_5.https.worker-expected.txt >+++ /dev/null >@@ -1,394 +0,0 @@ >- >-PASS Bad algorithm: generateKey(AES, false, [decrypt]) >-PASS Bad algorithm: generateKey(AES, true, [decrypt]) >-PASS Bad algorithm: generateKey(AES, RED, [decrypt]) >-PASS Bad algorithm: generateKey(AES, 7, [decrypt]) >-PASS Bad algorithm: generateKey(AES, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey(AES, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey(AES, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey(AES, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey(AES, false, [sign]) >-PASS Bad algorithm: generateKey(AES, true, [sign]) >-PASS Bad algorithm: generateKey(AES, RED, [sign]) >-PASS Bad algorithm: generateKey(AES, 7, [sign]) >-PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey(AES, false, [deriveBits]) >-PASS Bad algorithm: generateKey(AES, true, [deriveBits]) >-PASS Bad algorithm: generateKey(AES, RED, [deriveBits]) >-PASS Bad algorithm: generateKey(AES, 7, [deriveBits]) >-PASS Bad algorithm: generateKey(AES, false, []) >-PASS Bad algorithm: generateKey(AES, true, []) >-PASS Bad algorithm: generateKey(AES, RED, []) >-PASS Bad algorithm: generateKey(AES, 7, []) >-PASS Bad algorithm: generateKey(AES, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey(AES, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey(AES, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey(AES, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, false, [decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, true, [decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, false, [sign]) >-PASS Bad algorithm: generateKey({name: AES}, true, [sign]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [sign]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [sign]) >-PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, false, []) >-PASS Bad algorithm: generateKey({name: AES}, true, []) >-PASS Bad algorithm: generateKey({name: AES}, RED, []) >-PASS Bad algorithm: generateKey({name: AES}, 7, []) >-PASS Bad algorithm: generateKey({name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, []) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, []) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, []) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, []) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, []) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, []) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, []) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, []) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, encrypt]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, encrypt]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, encrypt]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, decrypt]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, decrypt]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, wrapKey]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, wrapKey]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, wrapKey]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, unwrapKey]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, unwrapKey]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, unwrapKey]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, encrypt]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, encrypt]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, encrypt]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, decrypt]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, decrypt]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, wrapKey]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, wrapKey]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, wrapKey]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, unwrapKey]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, unwrapKey]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, unwrapKey]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, deriveBits]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1}}, false, [sign]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1}}, true, [sign]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1}}, false, [verify, sign]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1}}, true, [verify, sign]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1}}, false, []) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1}}, true, []) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1}}, false, [sign, verify, sign, sign, verify]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1}}, true, [sign, verify, sign, sign, verify]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [sign]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [sign]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [verify, sign]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [verify, sign]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 0}}, false, []) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 0}}, true, []) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [sign, verify, sign, sign, verify]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [sign, verify, sign, sign, verify]) >-PASS Empty usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >-PASS Empty usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >-PASS Empty usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >-PASS Empty usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSASSA-PKCS1-v1_5.https.worker.html b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSASSA-PKCS1-v1_5.https.worker.html >deleted file mode 100644 >index 2382913528e693b3a5d56c660a45060980b548c3..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSASSA-PKCS1-v1_5.https.worker.html >+++ /dev/null >@@ -1 +0,0 @@ >-<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSASSA-PKCS1-v1_5.https.worker.js b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSASSA-PKCS1-v1_5.https.worker.js >deleted file mode 100644 >index 4df0b896fe37c2a18d91b72b02d920aa959be880..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSASSA-PKCS1-v1_5.https.worker.js >+++ /dev/null >@@ -1,6 +0,0 @@ >-// META: timeout=long >-importScripts("/resources/testharness.js"); >-importScripts("../util/helpers.js"); >-importScripts("failures.js"); >-run_test(["RSASSA-PKCS1-v1_5"]); >-done(); >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes.js b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes.js >index 6a74c01ddde4fd4a10fd8144d582e77fda76713f..b99e44d66d40f882fdcd217ddba8b41cba457ea6 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes.js >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes.js >@@ -70,7 +70,6 @@ function run_test(algorithmNames, slowTest) { > }, testTag + ": generateKey" + parameterString(algorithm, extractable, usages)); > } > >- > // Test all valid sets of parameters for successful > // key generation. > testVectors.forEach(function(vector) { >@@ -78,7 +77,7 @@ function run_test(algorithmNames, slowTest) { > allAlgorithmSpecifiersFor(name).forEach(function(algorithm) { > allValidUsages(vector.usages, false, vector.mandatoryUsages).forEach(function(usages) { > [false, true].forEach(function(extractable) { >- testSuccess(algorithm, extractable, usages, vector.resultType, "Success"); >+ subsetTest(testSuccess, algorithm, extractable, usages, vector.resultType, "Success"); > }); > }); > }); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-CBC.https.any-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-CBC.https.any-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..1f58d695d247ddff18e05be392a212e7087f5e05 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-CBC.https.any-expected.txt >@@ -0,0 +1,4 @@ >+CONSOLE MESSAGE: line 80: ReferenceError: Can't find variable: subsetTest >+ >+FAIL Untitled ReferenceError: Can't find variable: subsetTest >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-CBC.https.any.html b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-CBC.https.any.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-CBC.https.any.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-CBC.https.any.js b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-CBC.https.any.js >new file mode 100644 >index 0000000000000000000000000000000000000000..6feb60e5caa79590c3685bb247ed9ccbe01910b1 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-CBC.https.any.js >@@ -0,0 +1,5 @@ >+// META: timeout=long >+// META: script=../util/helpers.js >+// META: script=/common/subset-tests.js >+// META: script=successes.js >+run_test(["AES-CBC"]); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-CBC.https.any.worker-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-CBC.https.any.worker-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..15014066f44818d2f645503babc9915108b99d23 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-CBC.https.any.worker-expected.txt >@@ -0,0 +1,4 @@ >+ >+Harness Error (FAIL), message = Error in remote https://localhost:9443/WebCryptoAPI/generateKey/successes_AES-CBC.https.any.worker.js: NetworkError: Failed to load script >+ >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-CBC.https.any.worker.html b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-CBC.https.any.worker.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-CBC.https.any.worker.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-CBC.https.worker-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-CBC.https.worker-expected.txt >deleted file mode 100644 >index 377dd279c6acd615a54649178cbf3c0c5f9517bd..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-CBC.https.worker-expected.txt >+++ /dev/null >@@ -1,290 +0,0 @@ >- >-PASS Success: generateKey({length: 128, name: AES-CBC}, false, [encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, true, [encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, false, [decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, true, [decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, false, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, false, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, false, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, false, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, false, [decrypt]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, true, [decrypt]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, false, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, false, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, false, [wrapKey]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, true, [wrapKey]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, false, [unwrapKey]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, false, [encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, true, [encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, false, [decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, true, [decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, false, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, false, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, false, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, false, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, false, [decrypt]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, true, [decrypt]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, false, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, false, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, false, [wrapKey]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, true, [wrapKey]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, false, [unwrapKey]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, false, [encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, true, [encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, false, [decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, true, [decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, false, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, false, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, false, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, false, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, false, [decrypt]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, true, [decrypt]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, false, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, false, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, false, [wrapKey]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, true, [wrapKey]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, false, [unwrapKey]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, false, [encrypt]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, true, [encrypt]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, false, [decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, true, [decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, false, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, true, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, false, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, true, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, false, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, true, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, false, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, true, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, false, [decrypt]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, true, [decrypt]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, false, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, true, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, false, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, true, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, false, [wrapKey]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, true, [wrapKey]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, false, [unwrapKey]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, true, [unwrapKey]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, false, [encrypt]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, true, [encrypt]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, false, [decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, true, [decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, false, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, true, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, false, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, true, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, false, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, true, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, false, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, true, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, false, [decrypt]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, true, [decrypt]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, false, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, true, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, false, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, true, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, false, [wrapKey]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, true, [wrapKey]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, false, [unwrapKey]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, true, [unwrapKey]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, false, [encrypt]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, true, [encrypt]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, false, [decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, true, [decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, false, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, true, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, false, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, true, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, false, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, true, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, false, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, true, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, false, [decrypt]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, true, [decrypt]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, false, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, true, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, false, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, true, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, false, [wrapKey]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, true, [wrapKey]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, false, [unwrapKey]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, true, [unwrapKey]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [decrypt]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [decrypt]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [wrapKey]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [wrapKey]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [unwrapKey]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [unwrapKey]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [decrypt]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [decrypt]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [wrapKey]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [wrapKey]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [unwrapKey]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [unwrapKey]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [decrypt]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [decrypt]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [wrapKey]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [wrapKey]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [unwrapKey]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [unwrapKey]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-CBC.https.worker.html b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-CBC.https.worker.html >deleted file mode 100644 >index 2382913528e693b3a5d56c660a45060980b548c3..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-CBC.https.worker.html >+++ /dev/null >@@ -1 +0,0 @@ >-<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-CBC.https.worker.js b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-CBC.https.worker.js >deleted file mode 100644 >index 0710c9e7b504533b3f7a089f83e3b4c28af116bd..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-CBC.https.worker.js >+++ /dev/null >@@ -1,7 +0,0 @@ >-// META: timeout=long >-importScripts("/resources/testharness.js"); >-importScripts("../util/helpers.js"); >-importScripts("successes.js"); >- >-run_test(["AES-CBC"]); >-done(); >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-CTR.https.any-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-CTR.https.any-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..1f58d695d247ddff18e05be392a212e7087f5e05 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-CTR.https.any-expected.txt >@@ -0,0 +1,4 @@ >+CONSOLE MESSAGE: line 80: ReferenceError: Can't find variable: subsetTest >+ >+FAIL Untitled ReferenceError: Can't find variable: subsetTest >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-CTR.https.any.html b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-CTR.https.any.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-CTR.https.any.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-CTR.https.any.js b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-CTR.https.any.js >new file mode 100644 >index 0000000000000000000000000000000000000000..7b4f2df5fb1b3cf923929ab349a4968db68bf35f >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-CTR.https.any.js >@@ -0,0 +1,5 @@ >+// META: timeout=long >+// META: script=../util/helpers.js >+// META: script=/common/subset-tests.js >+// META: script=successes.js >+run_test(["AES-CTR"]); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-CTR.https.any.worker-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-CTR.https.any.worker-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..201518abda595d4274ce8dbfe3e7246d4bafa9a5 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-CTR.https.any.worker-expected.txt >@@ -0,0 +1,4 @@ >+ >+Harness Error (FAIL), message = Error in remote https://localhost:9443/WebCryptoAPI/generateKey/successes_AES-CTR.https.any.worker.js: NetworkError: Failed to load script >+ >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-CTR.https.any.worker.html b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-CTR.https.any.worker.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-CTR.https.any.worker.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-CTR.https.worker-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-CTR.https.worker-expected.txt >deleted file mode 100644 >index e4db9f863ec0a63d817302bd9da7e5732ab8b7d3..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-CTR.https.worker-expected.txt >+++ /dev/null >@@ -1,290 +0,0 @@ >- >-PASS Success: generateKey({length: 128, name: AES-CTR}, false, [encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, true, [encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, false, [decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, true, [decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, false, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, false, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, false, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, false, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, false, [decrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, true, [decrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, false, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, false, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, false, [wrapKey]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, true, [wrapKey]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, false, [unwrapKey]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, false, [encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, true, [encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, false, [decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, true, [decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, false, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, false, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, false, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, false, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, false, [decrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, true, [decrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, false, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, false, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, false, [wrapKey]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, true, [wrapKey]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, false, [unwrapKey]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, false, [encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, true, [encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, false, [decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, true, [decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, false, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, false, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, false, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, false, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, false, [decrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, true, [decrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, false, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, false, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, false, [wrapKey]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, true, [wrapKey]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, false, [unwrapKey]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, false, [encrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, true, [encrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, false, [decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, true, [decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, false, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, true, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, false, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, true, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, false, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, true, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, false, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, true, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, false, [decrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, true, [decrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, false, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, true, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, false, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, true, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, false, [wrapKey]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, true, [wrapKey]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, false, [unwrapKey]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, true, [unwrapKey]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, false, [encrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, true, [encrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, false, [decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, true, [decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, false, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, true, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, false, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, true, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, false, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, true, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, false, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, true, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, false, [decrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, true, [decrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, false, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, true, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, false, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, true, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, false, [wrapKey]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, true, [wrapKey]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, false, [unwrapKey]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, true, [unwrapKey]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, false, [encrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, true, [encrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, false, [decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, true, [decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, false, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, true, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, false, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, true, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, false, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, true, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, false, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, true, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, false, [decrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, true, [decrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, false, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, true, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, false, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, true, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, false, [wrapKey]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, true, [wrapKey]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, false, [unwrapKey]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, true, [unwrapKey]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, false, [encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, true, [encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, false, [decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, true, [decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, false, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, true, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, false, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, true, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, false, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, true, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, false, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, true, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, false, [decrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, true, [decrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, false, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, true, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, false, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, true, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, false, [wrapKey]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, true, [wrapKey]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, false, [unwrapKey]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, true, [unwrapKey]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, false, [encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, true, [encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, false, [decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, true, [decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, false, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, true, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, false, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, true, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, false, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, true, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, false, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, true, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, false, [decrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, true, [decrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, false, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, true, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, false, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, true, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, false, [wrapKey]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, true, [wrapKey]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, false, [unwrapKey]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, true, [unwrapKey]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, false, [encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, true, [encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, false, [decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, true, [decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, false, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, true, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, false, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, true, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, false, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, true, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, false, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, true, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, false, [decrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, true, [decrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, false, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, true, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, false, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, true, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, false, [wrapKey]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, true, [wrapKey]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, false, [unwrapKey]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, true, [unwrapKey]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-CTR.https.worker.html b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-CTR.https.worker.html >deleted file mode 100644 >index 2382913528e693b3a5d56c660a45060980b548c3..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-CTR.https.worker.html >+++ /dev/null >@@ -1 +0,0 @@ >-<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-CTR.https.worker.js b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-CTR.https.worker.js >deleted file mode 100644 >index 51529f000fd8e0070014c94a9f28593185e0c785..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-CTR.https.worker.js >+++ /dev/null >@@ -1,7 +0,0 @@ >-// META: timeout=long >-importScripts("/resources/testharness.js"); >-importScripts("../util/helpers.js"); >-importScripts("successes.js"); >- >-run_test(["AES-CTR"]); >-done(); >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-GCM.https.any-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-GCM.https.any-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..1f58d695d247ddff18e05be392a212e7087f5e05 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-GCM.https.any-expected.txt >@@ -0,0 +1,4 @@ >+CONSOLE MESSAGE: line 80: ReferenceError: Can't find variable: subsetTest >+ >+FAIL Untitled ReferenceError: Can't find variable: subsetTest >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-GCM.https.any.html b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-GCM.https.any.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-GCM.https.any.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-GCM.https.any.js b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-GCM.https.any.js >new file mode 100644 >index 0000000000000000000000000000000000000000..8e7bc92170c65b2377da3665ac4d564d9fa9729b >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-GCM.https.any.js >@@ -0,0 +1,5 @@ >+// META: timeout=long >+// META: script=../util/helpers.js >+// META: script=/common/subset-tests.js >+// META: script=successes.js >+run_test(["AES-GCM"]); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-GCM.https.any.worker-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-GCM.https.any.worker-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..8e49f763f123c060dcdcdb538a37a279580c1d6b >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-GCM.https.any.worker-expected.txt >@@ -0,0 +1,4 @@ >+ >+Harness Error (FAIL), message = Error in remote https://localhost:9443/WebCryptoAPI/generateKey/successes_AES-GCM.https.any.worker.js: NetworkError: Failed to load script >+ >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-GCM.https.any.worker.html b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-GCM.https.any.worker.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-GCM.https.any.worker.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-GCM.https.worker-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-GCM.https.worker-expected.txt >deleted file mode 100644 >index 074f16aa890d925ef69466b3130917dda798efeb..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-GCM.https.worker-expected.txt >+++ /dev/null >@@ -1,290 +0,0 @@ >- >-PASS Success: generateKey({length: 128, name: AES-GCM}, false, [encrypt]) >-PASS Success: generateKey({length: 128, name: AES-GCM}, true, [encrypt]) >-PASS Success: generateKey({length: 128, name: AES-GCM}, false, [decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-GCM}, true, [decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-GCM}, false, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-GCM}, false, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-GCM}, false, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-GCM}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-GCM}, false, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-GCM}, false, [decrypt]) >-PASS Success: generateKey({length: 128, name: AES-GCM}, true, [decrypt]) >-PASS Success: generateKey({length: 128, name: AES-GCM}, false, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: AES-GCM}, false, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: AES-GCM}, false, [wrapKey]) >-PASS Success: generateKey({length: 128, name: AES-GCM}, true, [wrapKey]) >-PASS Success: generateKey({length: 128, name: AES-GCM}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 128, name: AES-GCM}, false, [unwrapKey]) >-PASS Success: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey]) >-PASS Success: generateKey({length: 128, name: AES-GCM}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 128, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 192, name: AES-GCM}, false, [encrypt]) >-PASS Success: generateKey({length: 192, name: AES-GCM}, true, [encrypt]) >-PASS Success: generateKey({length: 192, name: AES-GCM}, false, [decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-GCM}, true, [decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-GCM}, false, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-GCM}, false, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-GCM}, false, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-GCM}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-GCM}, false, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-GCM}, false, [decrypt]) >-PASS Success: generateKey({length: 192, name: AES-GCM}, true, [decrypt]) >-PASS Success: generateKey({length: 192, name: AES-GCM}, false, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: AES-GCM}, false, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: AES-GCM}, false, [wrapKey]) >-PASS Success: generateKey({length: 192, name: AES-GCM}, true, [wrapKey]) >-PASS Success: generateKey({length: 192, name: AES-GCM}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 192, name: AES-GCM}, false, [unwrapKey]) >-PASS Success: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey]) >-PASS Success: generateKey({length: 192, name: AES-GCM}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 192, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 256, name: AES-GCM}, false, [encrypt]) >-PASS Success: generateKey({length: 256, name: AES-GCM}, true, [encrypt]) >-PASS Success: generateKey({length: 256, name: AES-GCM}, false, [decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-GCM}, true, [decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-GCM}, false, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-GCM}, false, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-GCM}, false, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-GCM}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-GCM}, false, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-GCM}, false, [decrypt]) >-PASS Success: generateKey({length: 256, name: AES-GCM}, true, [decrypt]) >-PASS Success: generateKey({length: 256, name: AES-GCM}, false, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: AES-GCM}, false, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: AES-GCM}, false, [wrapKey]) >-PASS Success: generateKey({length: 256, name: AES-GCM}, true, [wrapKey]) >-PASS Success: generateKey({length: 256, name: AES-GCM}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 256, name: AES-GCM}, false, [unwrapKey]) >-PASS Success: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey]) >-PASS Success: generateKey({length: 256, name: AES-GCM}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 256, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 128, name: aes-gcm}, false, [encrypt]) >-PASS Success: generateKey({length: 128, name: aes-gcm}, true, [encrypt]) >-PASS Success: generateKey({length: 128, name: aes-gcm}, false, [decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-gcm}, true, [decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-gcm}, false, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-gcm}, true, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-gcm}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-gcm}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-gcm}, false, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-gcm}, true, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-gcm}, false, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-gcm}, true, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-gcm}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-gcm}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-gcm}, false, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-gcm}, true, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-gcm}, false, [decrypt]) >-PASS Success: generateKey({length: 128, name: aes-gcm}, true, [decrypt]) >-PASS Success: generateKey({length: 128, name: aes-gcm}, false, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: aes-gcm}, true, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: aes-gcm}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: aes-gcm}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: aes-gcm}, false, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: aes-gcm}, true, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: aes-gcm}, false, [wrapKey]) >-PASS Success: generateKey({length: 128, name: aes-gcm}, true, [wrapKey]) >-PASS Success: generateKey({length: 128, name: aes-gcm}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 128, name: aes-gcm}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 128, name: aes-gcm}, false, [unwrapKey]) >-PASS Success: generateKey({length: 128, name: aes-gcm}, true, [unwrapKey]) >-PASS Success: generateKey({length: 128, name: aes-gcm}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 128, name: aes-gcm}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 192, name: aes-gcm}, false, [encrypt]) >-PASS Success: generateKey({length: 192, name: aes-gcm}, true, [encrypt]) >-PASS Success: generateKey({length: 192, name: aes-gcm}, false, [decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-gcm}, true, [decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-gcm}, false, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-gcm}, true, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-gcm}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-gcm}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-gcm}, false, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-gcm}, true, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-gcm}, false, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-gcm}, true, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-gcm}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-gcm}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-gcm}, false, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-gcm}, true, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-gcm}, false, [decrypt]) >-PASS Success: generateKey({length: 192, name: aes-gcm}, true, [decrypt]) >-PASS Success: generateKey({length: 192, name: aes-gcm}, false, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: aes-gcm}, true, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: aes-gcm}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: aes-gcm}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: aes-gcm}, false, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: aes-gcm}, true, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: aes-gcm}, false, [wrapKey]) >-PASS Success: generateKey({length: 192, name: aes-gcm}, true, [wrapKey]) >-PASS Success: generateKey({length: 192, name: aes-gcm}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 192, name: aes-gcm}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 192, name: aes-gcm}, false, [unwrapKey]) >-PASS Success: generateKey({length: 192, name: aes-gcm}, true, [unwrapKey]) >-PASS Success: generateKey({length: 192, name: aes-gcm}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 192, name: aes-gcm}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 256, name: aes-gcm}, false, [encrypt]) >-PASS Success: generateKey({length: 256, name: aes-gcm}, true, [encrypt]) >-PASS Success: generateKey({length: 256, name: aes-gcm}, false, [decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-gcm}, true, [decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-gcm}, false, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-gcm}, true, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-gcm}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-gcm}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-gcm}, false, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-gcm}, true, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-gcm}, false, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-gcm}, true, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-gcm}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-gcm}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-gcm}, false, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-gcm}, true, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-gcm}, false, [decrypt]) >-PASS Success: generateKey({length: 256, name: aes-gcm}, true, [decrypt]) >-PASS Success: generateKey({length: 256, name: aes-gcm}, false, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: aes-gcm}, true, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: aes-gcm}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: aes-gcm}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: aes-gcm}, false, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: aes-gcm}, true, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: aes-gcm}, false, [wrapKey]) >-PASS Success: generateKey({length: 256, name: aes-gcm}, true, [wrapKey]) >-PASS Success: generateKey({length: 256, name: aes-gcm}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 256, name: aes-gcm}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 256, name: aes-gcm}, false, [unwrapKey]) >-PASS Success: generateKey({length: 256, name: aes-gcm}, true, [unwrapKey]) >-PASS Success: generateKey({length: 256, name: aes-gcm}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 256, name: aes-gcm}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 128, name: Aes-gcm}, false, [encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-gcm}, true, [encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-gcm}, false, [decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-gcm}, true, [decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-gcm}, false, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-gcm}, true, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-gcm}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-gcm}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-gcm}, false, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-gcm}, true, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-gcm}, false, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-gcm}, true, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-gcm}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-gcm}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-gcm}, false, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-gcm}, true, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-gcm}, false, [decrypt]) >-PASS Success: generateKey({length: 128, name: Aes-gcm}, true, [decrypt]) >-PASS Success: generateKey({length: 128, name: Aes-gcm}, false, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: Aes-gcm}, true, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: Aes-gcm}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: Aes-gcm}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: Aes-gcm}, false, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: Aes-gcm}, true, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: Aes-gcm}, false, [wrapKey]) >-PASS Success: generateKey({length: 128, name: Aes-gcm}, true, [wrapKey]) >-PASS Success: generateKey({length: 128, name: Aes-gcm}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 128, name: Aes-gcm}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 128, name: Aes-gcm}, false, [unwrapKey]) >-PASS Success: generateKey({length: 128, name: Aes-gcm}, true, [unwrapKey]) >-PASS Success: generateKey({length: 128, name: Aes-gcm}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 128, name: Aes-gcm}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 192, name: Aes-gcm}, false, [encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-gcm}, true, [encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-gcm}, false, [decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-gcm}, true, [decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-gcm}, false, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-gcm}, true, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-gcm}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-gcm}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-gcm}, false, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-gcm}, true, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-gcm}, false, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-gcm}, true, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-gcm}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-gcm}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-gcm}, false, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-gcm}, true, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-gcm}, false, [decrypt]) >-PASS Success: generateKey({length: 192, name: Aes-gcm}, true, [decrypt]) >-PASS Success: generateKey({length: 192, name: Aes-gcm}, false, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: Aes-gcm}, true, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: Aes-gcm}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: Aes-gcm}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: Aes-gcm}, false, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: Aes-gcm}, true, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: Aes-gcm}, false, [wrapKey]) >-PASS Success: generateKey({length: 192, name: Aes-gcm}, true, [wrapKey]) >-PASS Success: generateKey({length: 192, name: Aes-gcm}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 192, name: Aes-gcm}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 192, name: Aes-gcm}, false, [unwrapKey]) >-PASS Success: generateKey({length: 192, name: Aes-gcm}, true, [unwrapKey]) >-PASS Success: generateKey({length: 192, name: Aes-gcm}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 192, name: Aes-gcm}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 256, name: Aes-gcm}, false, [encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-gcm}, true, [encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-gcm}, false, [decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-gcm}, true, [decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-gcm}, false, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-gcm}, true, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-gcm}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-gcm}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-gcm}, false, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-gcm}, true, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-gcm}, false, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-gcm}, true, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-gcm}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-gcm}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-gcm}, false, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-gcm}, true, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-gcm}, false, [decrypt]) >-PASS Success: generateKey({length: 256, name: Aes-gcm}, true, [decrypt]) >-PASS Success: generateKey({length: 256, name: Aes-gcm}, false, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: Aes-gcm}, true, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: Aes-gcm}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: Aes-gcm}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: Aes-gcm}, false, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: Aes-gcm}, true, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: Aes-gcm}, false, [wrapKey]) >-PASS Success: generateKey({length: 256, name: Aes-gcm}, true, [wrapKey]) >-PASS Success: generateKey({length: 256, name: Aes-gcm}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 256, name: Aes-gcm}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 256, name: Aes-gcm}, false, [unwrapKey]) >-PASS Success: generateKey({length: 256, name: Aes-gcm}, true, [unwrapKey]) >-PASS Success: generateKey({length: 256, name: Aes-gcm}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 256, name: Aes-gcm}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-GCM.https.worker.html b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-GCM.https.worker.html >deleted file mode 100644 >index 2382913528e693b3a5d56c660a45060980b548c3..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-GCM.https.worker.html >+++ /dev/null >@@ -1 +0,0 @@ >-<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-GCM.https.worker.js b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-GCM.https.worker.js >deleted file mode 100644 >index 1f6a1bc96e0060efb8ec681fb0dcbb7942734162..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-GCM.https.worker.js >+++ /dev/null >@@ -1,7 +0,0 @@ >-// META: timeout=long >-importScripts("/resources/testharness.js"); >-importScripts("../util/helpers.js"); >-importScripts("successes.js"); >- >-run_test(["AES-GCM"]); >-done(); >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-KW.https.any-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-KW.https.any-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..1f58d695d247ddff18e05be392a212e7087f5e05 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-KW.https.any-expected.txt >@@ -0,0 +1,4 @@ >+CONSOLE MESSAGE: line 80: ReferenceError: Can't find variable: subsetTest >+ >+FAIL Untitled ReferenceError: Can't find variable: subsetTest >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-KW.https.any.html b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-KW.https.any.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-KW.https.any.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-KW.https.any.js b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-KW.https.any.js >new file mode 100644 >index 0000000000000000000000000000000000000000..5eb023369f402971dee5870a692fd21241d19525 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-KW.https.any.js >@@ -0,0 +1,5 @@ >+// META: timeout=long >+// META: script=../util/helpers.js >+// META: script=/common/subset-tests.js >+// META: script=successes.js >+run_test(["AES-KW"]); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-KW.https.any.worker-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-KW.https.any.worker-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..5814226c9ae40717846aa1bf302939c43e0ebede >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-KW.https.any.worker-expected.txt >@@ -0,0 +1,4 @@ >+ >+Harness Error (FAIL), message = Error in remote https://localhost:9443/WebCryptoAPI/generateKey/successes_AES-KW.https.any.worker.js: NetworkError: Failed to load script >+ >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-KW.https.any.worker.html b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-KW.https.any.worker.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-KW.https.any.worker.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-KW.https.worker-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-KW.https.worker-expected.txt >deleted file mode 100644 >index 43842a1c474ffaf7aae0cc08e855a5876c29b77e..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-KW.https.worker-expected.txt >+++ /dev/null >@@ -1,74 +0,0 @@ >- >-PASS Success: generateKey({length: 128, name: AES-KW}, false, [wrapKey]) >-PASS Success: generateKey({length: 128, name: AES-KW}, true, [wrapKey]) >-PASS Success: generateKey({length: 128, name: AES-KW}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 128, name: AES-KW}, false, [unwrapKey]) >-PASS Success: generateKey({length: 128, name: AES-KW}, true, [unwrapKey]) >-PASS Success: generateKey({length: 128, name: AES-KW}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 128, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 192, name: AES-KW}, false, [wrapKey]) >-PASS Success: generateKey({length: 192, name: AES-KW}, true, [wrapKey]) >-PASS Success: generateKey({length: 192, name: AES-KW}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 192, name: AES-KW}, false, [unwrapKey]) >-PASS Success: generateKey({length: 192, name: AES-KW}, true, [unwrapKey]) >-PASS Success: generateKey({length: 192, name: AES-KW}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 192, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 256, name: AES-KW}, false, [wrapKey]) >-PASS Success: generateKey({length: 256, name: AES-KW}, true, [wrapKey]) >-PASS Success: generateKey({length: 256, name: AES-KW}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 256, name: AES-KW}, false, [unwrapKey]) >-PASS Success: generateKey({length: 256, name: AES-KW}, true, [unwrapKey]) >-PASS Success: generateKey({length: 256, name: AES-KW}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 256, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 128, name: aes-kw}, false, [wrapKey]) >-PASS Success: generateKey({length: 128, name: aes-kw}, true, [wrapKey]) >-PASS Success: generateKey({length: 128, name: aes-kw}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 128, name: aes-kw}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 128, name: aes-kw}, false, [unwrapKey]) >-PASS Success: generateKey({length: 128, name: aes-kw}, true, [unwrapKey]) >-PASS Success: generateKey({length: 128, name: aes-kw}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 128, name: aes-kw}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 192, name: aes-kw}, false, [wrapKey]) >-PASS Success: generateKey({length: 192, name: aes-kw}, true, [wrapKey]) >-PASS Success: generateKey({length: 192, name: aes-kw}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 192, name: aes-kw}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 192, name: aes-kw}, false, [unwrapKey]) >-PASS Success: generateKey({length: 192, name: aes-kw}, true, [unwrapKey]) >-PASS Success: generateKey({length: 192, name: aes-kw}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 192, name: aes-kw}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 256, name: aes-kw}, false, [wrapKey]) >-PASS Success: generateKey({length: 256, name: aes-kw}, true, [wrapKey]) >-PASS Success: generateKey({length: 256, name: aes-kw}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 256, name: aes-kw}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 256, name: aes-kw}, false, [unwrapKey]) >-PASS Success: generateKey({length: 256, name: aes-kw}, true, [unwrapKey]) >-PASS Success: generateKey({length: 256, name: aes-kw}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 256, name: aes-kw}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 128, name: Aes-kw}, false, [wrapKey]) >-PASS Success: generateKey({length: 128, name: Aes-kw}, true, [wrapKey]) >-PASS Success: generateKey({length: 128, name: Aes-kw}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 128, name: Aes-kw}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 128, name: Aes-kw}, false, [unwrapKey]) >-PASS Success: generateKey({length: 128, name: Aes-kw}, true, [unwrapKey]) >-PASS Success: generateKey({length: 128, name: Aes-kw}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 128, name: Aes-kw}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 192, name: Aes-kw}, false, [wrapKey]) >-PASS Success: generateKey({length: 192, name: Aes-kw}, true, [wrapKey]) >-PASS Success: generateKey({length: 192, name: Aes-kw}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 192, name: Aes-kw}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 192, name: Aes-kw}, false, [unwrapKey]) >-PASS Success: generateKey({length: 192, name: Aes-kw}, true, [unwrapKey]) >-PASS Success: generateKey({length: 192, name: Aes-kw}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 192, name: Aes-kw}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 256, name: Aes-kw}, false, [wrapKey]) >-PASS Success: generateKey({length: 256, name: Aes-kw}, true, [wrapKey]) >-PASS Success: generateKey({length: 256, name: Aes-kw}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 256, name: Aes-kw}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 256, name: Aes-kw}, false, [unwrapKey]) >-PASS Success: generateKey({length: 256, name: Aes-kw}, true, [unwrapKey]) >-PASS Success: generateKey({length: 256, name: Aes-kw}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 256, name: Aes-kw}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-KW.https.worker.html b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-KW.https.worker.html >deleted file mode 100644 >index 2382913528e693b3a5d56c660a45060980b548c3..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-KW.https.worker.html >+++ /dev/null >@@ -1 +0,0 @@ >-<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-KW.https.worker.js b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-KW.https.worker.js >deleted file mode 100644 >index 058cf83d0576200f3103cd1dd607886fd6ded8dd..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-KW.https.worker.js >+++ /dev/null >@@ -1,7 +0,0 @@ >-// META: timeout=long >-importScripts("/resources/testharness.js"); >-importScripts("../util/helpers.js"); >-importScripts("successes.js"); >- >-run_test(["AES-KW"]); >-done(); >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_ECDH.https.any-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_ECDH.https.any-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..1f58d695d247ddff18e05be392a212e7087f5e05 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_ECDH.https.any-expected.txt >@@ -0,0 +1,4 @@ >+CONSOLE MESSAGE: line 80: ReferenceError: Can't find variable: subsetTest >+ >+FAIL Untitled ReferenceError: Can't find variable: subsetTest >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_ECDH.https.any.html b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_ECDH.https.any.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_ECDH.https.any.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_ECDH.https.any.js b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_ECDH.https.any.js >new file mode 100644 >index 0000000000000000000000000000000000000000..87590d23ea4340c7adfd298d3ff828f9f839ef71 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_ECDH.https.any.js >@@ -0,0 +1,5 @@ >+// META: timeout=long >+// META: script=../util/helpers.js >+// META: script=/common/subset-tests.js >+// META: script=successes.js >+run_test(["ECDH"]); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_ECDH.https.any.worker-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_ECDH.https.any.worker-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..5f33657c5108be7cea8feb4112bad6ccfaad32da >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_ECDH.https.any.worker-expected.txt >@@ -0,0 +1,4 @@ >+ >+Harness Error (FAIL), message = Error in remote https://localhost:9443/WebCryptoAPI/generateKey/successes_ECDH.https.any.worker.js: NetworkError: Failed to load script >+ >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_ECDH.https.any.worker.html b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_ECDH.https.any.worker.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_ECDH.https.any.worker.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_ECDH.https.worker-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_ECDH.https.worker-expected.txt >deleted file mode 100644 >index ed7540195c4c2384b3345f9694987869e7568bc0..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_ECDH.https.worker-expected.txt >+++ /dev/null >@@ -1,74 +0,0 @@ >- >-PASS Success: generateKey({name: ECDH, namedCurve: P-256}, false, [deriveKey]) >-PASS Success: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey]) >-PASS Success: generateKey({name: ECDH, namedCurve: P-256}, false, [deriveBits, deriveKey]) >-PASS Success: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, deriveKey]) >-PASS Success: generateKey({name: ECDH, namedCurve: P-256}, false, [deriveBits]) >-PASS Success: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits]) >-PASS Success: generateKey({name: ECDH, namedCurve: P-256}, false, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) >-PASS Success: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) >-PASS Success: generateKey({name: ECDH, namedCurve: P-384}, false, [deriveKey]) >-PASS Success: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey]) >-PASS Success: generateKey({name: ECDH, namedCurve: P-384}, false, [deriveBits, deriveKey]) >-PASS Success: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, deriveKey]) >-PASS Success: generateKey({name: ECDH, namedCurve: P-384}, false, [deriveBits]) >-PASS Success: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits]) >-PASS Success: generateKey({name: ECDH, namedCurve: P-384}, false, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) >-PASS Success: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) >-FAIL Success: generateKey({name: ECDH, namedCurve: P-521}, false, [deriveKey]) assert_unreached: Threw an unexpected error: NotSupportedError: The algorithm is not supported Reached unreachable code >-FAIL Success: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey]) assert_unreached: Threw an unexpected error: NotSupportedError: The algorithm is not supported Reached unreachable code >-FAIL Success: generateKey({name: ECDH, namedCurve: P-521}, false, [deriveBits, deriveKey]) assert_unreached: Threw an unexpected error: NotSupportedError: The algorithm is not supported Reached unreachable code >-FAIL Success: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, deriveKey]) assert_unreached: Threw an unexpected error: NotSupportedError: The algorithm is not supported Reached unreachable code >-FAIL Success: generateKey({name: ECDH, namedCurve: P-521}, false, [deriveBits]) assert_unreached: Threw an unexpected error: NotSupportedError: The algorithm is not supported Reached unreachable code >-FAIL Success: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits]) assert_unreached: Threw an unexpected error: NotSupportedError: The algorithm is not supported Reached unreachable code >-FAIL Success: generateKey({name: ECDH, namedCurve: P-521}, false, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) assert_unreached: Threw an unexpected error: NotSupportedError: The algorithm is not supported Reached unreachable code >-FAIL Success: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) assert_unreached: Threw an unexpected error: NotSupportedError: The algorithm is not supported Reached unreachable code >-PASS Success: generateKey({name: ecdh, namedCurve: P-256}, false, [deriveKey]) >-PASS Success: generateKey({name: ecdh, namedCurve: P-256}, true, [deriveKey]) >-PASS Success: generateKey({name: ecdh, namedCurve: P-256}, false, [deriveBits, deriveKey]) >-PASS Success: generateKey({name: ecdh, namedCurve: P-256}, true, [deriveBits, deriveKey]) >-PASS Success: generateKey({name: ecdh, namedCurve: P-256}, false, [deriveBits]) >-PASS Success: generateKey({name: ecdh, namedCurve: P-256}, true, [deriveBits]) >-PASS Success: generateKey({name: ecdh, namedCurve: P-256}, false, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) >-PASS Success: generateKey({name: ecdh, namedCurve: P-256}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) >-PASS Success: generateKey({name: ecdh, namedCurve: P-384}, false, [deriveKey]) >-PASS Success: generateKey({name: ecdh, namedCurve: P-384}, true, [deriveKey]) >-PASS Success: generateKey({name: ecdh, namedCurve: P-384}, false, [deriveBits, deriveKey]) >-PASS Success: generateKey({name: ecdh, namedCurve: P-384}, true, [deriveBits, deriveKey]) >-PASS Success: generateKey({name: ecdh, namedCurve: P-384}, false, [deriveBits]) >-PASS Success: generateKey({name: ecdh, namedCurve: P-384}, true, [deriveBits]) >-PASS Success: generateKey({name: ecdh, namedCurve: P-384}, false, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) >-PASS Success: generateKey({name: ecdh, namedCurve: P-384}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) >-FAIL Success: generateKey({name: ecdh, namedCurve: P-521}, false, [deriveKey]) assert_unreached: Threw an unexpected error: NotSupportedError: The algorithm is not supported Reached unreachable code >-FAIL Success: generateKey({name: ecdh, namedCurve: P-521}, true, [deriveKey]) assert_unreached: Threw an unexpected error: NotSupportedError: The algorithm is not supported Reached unreachable code >-FAIL Success: generateKey({name: ecdh, namedCurve: P-521}, false, [deriveBits, deriveKey]) assert_unreached: Threw an unexpected error: NotSupportedError: The algorithm is not supported Reached unreachable code >-FAIL Success: generateKey({name: ecdh, namedCurve: P-521}, true, [deriveBits, deriveKey]) assert_unreached: Threw an unexpected error: NotSupportedError: The algorithm is not supported Reached unreachable code >-FAIL Success: generateKey({name: ecdh, namedCurve: P-521}, false, [deriveBits]) assert_unreached: Threw an unexpected error: NotSupportedError: The algorithm is not supported Reached unreachable code >-FAIL Success: generateKey({name: ecdh, namedCurve: P-521}, true, [deriveBits]) assert_unreached: Threw an unexpected error: NotSupportedError: The algorithm is not supported Reached unreachable code >-FAIL Success: generateKey({name: ecdh, namedCurve: P-521}, false, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) assert_unreached: Threw an unexpected error: NotSupportedError: The algorithm is not supported Reached unreachable code >-FAIL Success: generateKey({name: ecdh, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) assert_unreached: Threw an unexpected error: NotSupportedError: The algorithm is not supported Reached unreachable code >-PASS Success: generateKey({name: Ecdh, namedCurve: P-256}, false, [deriveKey]) >-PASS Success: generateKey({name: Ecdh, namedCurve: P-256}, true, [deriveKey]) >-PASS Success: generateKey({name: Ecdh, namedCurve: P-256}, false, [deriveBits, deriveKey]) >-PASS Success: generateKey({name: Ecdh, namedCurve: P-256}, true, [deriveBits, deriveKey]) >-PASS Success: generateKey({name: Ecdh, namedCurve: P-256}, false, [deriveBits]) >-PASS Success: generateKey({name: Ecdh, namedCurve: P-256}, true, [deriveBits]) >-PASS Success: generateKey({name: Ecdh, namedCurve: P-256}, false, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) >-PASS Success: generateKey({name: Ecdh, namedCurve: P-256}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) >-PASS Success: generateKey({name: Ecdh, namedCurve: P-384}, false, [deriveKey]) >-PASS Success: generateKey({name: Ecdh, namedCurve: P-384}, true, [deriveKey]) >-PASS Success: generateKey({name: Ecdh, namedCurve: P-384}, false, [deriveBits, deriveKey]) >-PASS Success: generateKey({name: Ecdh, namedCurve: P-384}, true, [deriveBits, deriveKey]) >-PASS Success: generateKey({name: Ecdh, namedCurve: P-384}, false, [deriveBits]) >-PASS Success: generateKey({name: Ecdh, namedCurve: P-384}, true, [deriveBits]) >-PASS Success: generateKey({name: Ecdh, namedCurve: P-384}, false, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) >-PASS Success: generateKey({name: Ecdh, namedCurve: P-384}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) >-FAIL Success: generateKey({name: Ecdh, namedCurve: P-521}, false, [deriveKey]) assert_unreached: Threw an unexpected error: NotSupportedError: The algorithm is not supported Reached unreachable code >-FAIL Success: generateKey({name: Ecdh, namedCurve: P-521}, true, [deriveKey]) assert_unreached: Threw an unexpected error: NotSupportedError: The algorithm is not supported Reached unreachable code >-FAIL Success: generateKey({name: Ecdh, namedCurve: P-521}, false, [deriveBits, deriveKey]) assert_unreached: Threw an unexpected error: NotSupportedError: The algorithm is not supported Reached unreachable code >-FAIL Success: generateKey({name: Ecdh, namedCurve: P-521}, true, [deriveBits, deriveKey]) assert_unreached: Threw an unexpected error: NotSupportedError: The algorithm is not supported Reached unreachable code >-FAIL Success: generateKey({name: Ecdh, namedCurve: P-521}, false, [deriveBits]) assert_unreached: Threw an unexpected error: NotSupportedError: The algorithm is not supported Reached unreachable code >-FAIL Success: generateKey({name: Ecdh, namedCurve: P-521}, true, [deriveBits]) assert_unreached: Threw an unexpected error: NotSupportedError: The algorithm is not supported Reached unreachable code >-FAIL Success: generateKey({name: Ecdh, namedCurve: P-521}, false, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) assert_unreached: Threw an unexpected error: NotSupportedError: The algorithm is not supported Reached unreachable code >-FAIL Success: generateKey({name: Ecdh, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) assert_unreached: Threw an unexpected error: NotSupportedError: The algorithm is not supported Reached unreachable code >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_ECDH.https.worker.html b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_ECDH.https.worker.html >deleted file mode 100644 >index 2382913528e693b3a5d56c660a45060980b548c3..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_ECDH.https.worker.html >+++ /dev/null >@@ -1 +0,0 @@ >-<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_ECDH.https.worker.js b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_ECDH.https.worker.js >deleted file mode 100644 >index a21b7d04e8bcd5493c1bfc5e7eae9f6ed7ba6206..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_ECDH.https.worker.js >+++ /dev/null >@@ -1,7 +0,0 @@ >-// META: timeout=long >-importScripts("/resources/testharness.js"); >-importScripts("../util/helpers.js"); >-importScripts("successes.js"); >- >-run_test(["ECDH"]); >-done(); >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_ECDSA.https.any-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_ECDSA.https.any-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..1f58d695d247ddff18e05be392a212e7087f5e05 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_ECDSA.https.any-expected.txt >@@ -0,0 +1,4 @@ >+CONSOLE MESSAGE: line 80: ReferenceError: Can't find variable: subsetTest >+ >+FAIL Untitled ReferenceError: Can't find variable: subsetTest >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_ECDSA.https.any.html b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_ECDSA.https.any.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_ECDSA.https.any.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_ECDSA.https.any.js b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_ECDSA.https.any.js >new file mode 100644 >index 0000000000000000000000000000000000000000..734d86972fc6786598b186e95e291a200384f282 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_ECDSA.https.any.js >@@ -0,0 +1,5 @@ >+// META: timeout=long >+// META: script=../util/helpers.js >+// META: script=/common/subset-tests.js >+// META: script=successes.js >+run_test(["ECDSA"]); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_ECDSA.https.any.worker-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_ECDSA.https.any.worker-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..09612a0e258b00ba1ab50e913350b476fbfcb87c >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_ECDSA.https.any.worker-expected.txt >@@ -0,0 +1,4 @@ >+ >+Harness Error (FAIL), message = Error in remote https://localhost:9443/WebCryptoAPI/generateKey/successes_ECDSA.https.any.worker.js: NetworkError: Failed to load script >+ >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_ECDSA.https.any.worker.html b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_ECDSA.https.any.worker.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_ECDSA.https.any.worker.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_ECDSA.https.worker-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_ECDSA.https.worker-expected.txt >deleted file mode 100644 >index d48e032088ed10a3a088de6f96b9ddf985e56d80..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_ECDSA.https.worker-expected.txt >+++ /dev/null >@@ -1,56 +0,0 @@ >- >-PASS Success: generateKey({name: ECDSA, namedCurve: P-256}, false, [sign]) >-PASS Success: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign]) >-PASS Success: generateKey({name: ECDSA, namedCurve: P-256}, false, [verify, sign]) >-PASS Success: generateKey({name: ECDSA, namedCurve: P-256}, true, [verify, sign]) >-PASS Success: generateKey({name: ECDSA, namedCurve: P-256}, false, [sign, verify, sign, sign, verify]) >-PASS Success: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, verify, sign, sign, verify]) >-PASS Success: generateKey({name: ECDSA, namedCurve: P-384}, false, [sign]) >-PASS Success: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign]) >-PASS Success: generateKey({name: ECDSA, namedCurve: P-384}, false, [verify, sign]) >-PASS Success: generateKey({name: ECDSA, namedCurve: P-384}, true, [verify, sign]) >-PASS Success: generateKey({name: ECDSA, namedCurve: P-384}, false, [sign, verify, sign, sign, verify]) >-PASS Success: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, verify, sign, sign, verify]) >-FAIL Success: generateKey({name: ECDSA, namedCurve: P-521}, false, [sign]) assert_unreached: Threw an unexpected error: NotSupportedError: The algorithm is not supported Reached unreachable code >-FAIL Success: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign]) assert_unreached: Threw an unexpected error: NotSupportedError: The algorithm is not supported Reached unreachable code >-FAIL Success: generateKey({name: ECDSA, namedCurve: P-521}, false, [verify, sign]) assert_unreached: Threw an unexpected error: NotSupportedError: The algorithm is not supported Reached unreachable code >-FAIL Success: generateKey({name: ECDSA, namedCurve: P-521}, true, [verify, sign]) assert_unreached: Threw an unexpected error: NotSupportedError: The algorithm is not supported Reached unreachable code >-FAIL Success: generateKey({name: ECDSA, namedCurve: P-521}, false, [sign, verify, sign, sign, verify]) assert_unreached: Threw an unexpected error: NotSupportedError: The algorithm is not supported Reached unreachable code >-FAIL Success: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, verify, sign, sign, verify]) assert_unreached: Threw an unexpected error: NotSupportedError: The algorithm is not supported Reached unreachable code >-PASS Success: generateKey({name: ecdsa, namedCurve: P-256}, false, [sign]) >-PASS Success: generateKey({name: ecdsa, namedCurve: P-256}, true, [sign]) >-PASS Success: generateKey({name: ecdsa, namedCurve: P-256}, false, [verify, sign]) >-PASS Success: generateKey({name: ecdsa, namedCurve: P-256}, true, [verify, sign]) >-PASS Success: generateKey({name: ecdsa, namedCurve: P-256}, false, [sign, verify, sign, sign, verify]) >-PASS Success: generateKey({name: ecdsa, namedCurve: P-256}, true, [sign, verify, sign, sign, verify]) >-PASS Success: generateKey({name: ecdsa, namedCurve: P-384}, false, [sign]) >-PASS Success: generateKey({name: ecdsa, namedCurve: P-384}, true, [sign]) >-PASS Success: generateKey({name: ecdsa, namedCurve: P-384}, false, [verify, sign]) >-PASS Success: generateKey({name: ecdsa, namedCurve: P-384}, true, [verify, sign]) >-PASS Success: generateKey({name: ecdsa, namedCurve: P-384}, false, [sign, verify, sign, sign, verify]) >-PASS Success: generateKey({name: ecdsa, namedCurve: P-384}, true, [sign, verify, sign, sign, verify]) >-FAIL Success: generateKey({name: ecdsa, namedCurve: P-521}, false, [sign]) assert_unreached: Threw an unexpected error: NotSupportedError: The algorithm is not supported Reached unreachable code >-FAIL Success: generateKey({name: ecdsa, namedCurve: P-521}, true, [sign]) assert_unreached: Threw an unexpected error: NotSupportedError: The algorithm is not supported Reached unreachable code >-FAIL Success: generateKey({name: ecdsa, namedCurve: P-521}, false, [verify, sign]) assert_unreached: Threw an unexpected error: NotSupportedError: The algorithm is not supported Reached unreachable code >-FAIL Success: generateKey({name: ecdsa, namedCurve: P-521}, true, [verify, sign]) assert_unreached: Threw an unexpected error: NotSupportedError: The algorithm is not supported Reached unreachable code >-FAIL Success: generateKey({name: ecdsa, namedCurve: P-521}, false, [sign, verify, sign, sign, verify]) assert_unreached: Threw an unexpected error: NotSupportedError: The algorithm is not supported Reached unreachable code >-FAIL Success: generateKey({name: ecdsa, namedCurve: P-521}, true, [sign, verify, sign, sign, verify]) assert_unreached: Threw an unexpected error: NotSupportedError: The algorithm is not supported Reached unreachable code >-PASS Success: generateKey({name: Ecdsa, namedCurve: P-256}, false, [sign]) >-PASS Success: generateKey({name: Ecdsa, namedCurve: P-256}, true, [sign]) >-PASS Success: generateKey({name: Ecdsa, namedCurve: P-256}, false, [verify, sign]) >-PASS Success: generateKey({name: Ecdsa, namedCurve: P-256}, true, [verify, sign]) >-PASS Success: generateKey({name: Ecdsa, namedCurve: P-256}, false, [sign, verify, sign, sign, verify]) >-PASS Success: generateKey({name: Ecdsa, namedCurve: P-256}, true, [sign, verify, sign, sign, verify]) >-PASS Success: generateKey({name: Ecdsa, namedCurve: P-384}, false, [sign]) >-PASS Success: generateKey({name: Ecdsa, namedCurve: P-384}, true, [sign]) >-PASS Success: generateKey({name: Ecdsa, namedCurve: P-384}, false, [verify, sign]) >-PASS Success: generateKey({name: Ecdsa, namedCurve: P-384}, true, [verify, sign]) >-PASS Success: generateKey({name: Ecdsa, namedCurve: P-384}, false, [sign, verify, sign, sign, verify]) >-PASS Success: generateKey({name: Ecdsa, namedCurve: P-384}, true, [sign, verify, sign, sign, verify]) >-FAIL Success: generateKey({name: Ecdsa, namedCurve: P-521}, false, [sign]) assert_unreached: Threw an unexpected error: NotSupportedError: The algorithm is not supported Reached unreachable code >-FAIL Success: generateKey({name: Ecdsa, namedCurve: P-521}, true, [sign]) assert_unreached: Threw an unexpected error: NotSupportedError: The algorithm is not supported Reached unreachable code >-FAIL Success: generateKey({name: Ecdsa, namedCurve: P-521}, false, [verify, sign]) assert_unreached: Threw an unexpected error: NotSupportedError: The algorithm is not supported Reached unreachable code >-FAIL Success: generateKey({name: Ecdsa, namedCurve: P-521}, true, [verify, sign]) assert_unreached: Threw an unexpected error: NotSupportedError: The algorithm is not supported Reached unreachable code >-FAIL Success: generateKey({name: Ecdsa, namedCurve: P-521}, false, [sign, verify, sign, sign, verify]) assert_unreached: Threw an unexpected error: NotSupportedError: The algorithm is not supported Reached unreachable code >-FAIL Success: generateKey({name: Ecdsa, namedCurve: P-521}, true, [sign, verify, sign, sign, verify]) assert_unreached: Threw an unexpected error: NotSupportedError: The algorithm is not supported Reached unreachable code >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_ECDSA.https.worker.html b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_ECDSA.https.worker.html >deleted file mode 100644 >index 2382913528e693b3a5d56c660a45060980b548c3..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_ECDSA.https.worker.html >+++ /dev/null >@@ -1 +0,0 @@ >-<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_ECDSA.https.worker.js b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_ECDSA.https.worker.js >deleted file mode 100644 >index 13f7e3539ec4745a5aefdb91bcff6c3491f026ef..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_ECDSA.https.worker.js >+++ /dev/null >@@ -1,7 +0,0 @@ >-// META: timeout=long >-importScripts("/resources/testharness.js"); >-importScripts("../util/helpers.js"); >-importScripts("successes.js"); >- >-run_test(["ECDSA"]); >-done(); >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_HMAC.https.any-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_HMAC.https.any-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..1f58d695d247ddff18e05be392a212e7087f5e05 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_HMAC.https.any-expected.txt >@@ -0,0 +1,4 @@ >+CONSOLE MESSAGE: line 80: ReferenceError: Can't find variable: subsetTest >+ >+FAIL Untitled ReferenceError: Can't find variable: subsetTest >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_HMAC.https.any.html b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_HMAC.https.any.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_HMAC.https.any.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_HMAC.https.any.js b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_HMAC.https.any.js >new file mode 100644 >index 0000000000000000000000000000000000000000..bc106f3c117c76247484b142c432f732bcafc848 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_HMAC.https.any.js >@@ -0,0 +1,5 @@ >+// META: timeout=long >+// META: script=../util/helpers.js >+// META: script=/common/subset-tests.js >+// META: script=successes.js >+run_test(["HMAC"]); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_HMAC.https.any.worker-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_HMAC.https.any.worker-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..e3797e3d90717c3de686155772b5faeb10a318bd >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_HMAC.https.any.worker-expected.txt >@@ -0,0 +1,4 @@ >+ >+Harness Error (FAIL), message = Error in remote https://localhost:9443/WebCryptoAPI/generateKey/successes_HMAC.https.any.worker.js: NetworkError: Failed to load script >+ >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_HMAC.https.any.worker.html b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_HMAC.https.any.worker.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_HMAC.https.any.worker.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_HMAC.https.worker-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_HMAC.https.worker-expected.txt >deleted file mode 100644 >index 76b75e6789694d6ab1e1984239fb81d116fcfdf9..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_HMAC.https.worker-expected.txt >+++ /dev/null >@@ -1,98 +0,0 @@ >- >-PASS Success: generateKey({hash: SHA-1, length: 160, name: HMAC}, false, [sign]) >-PASS Success: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign]) >-PASS Success: generateKey({hash: SHA-1, length: 160, name: HMAC}, false, [verify, sign]) >-PASS Success: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, sign]) >-PASS Success: generateKey({hash: SHA-1, length: 160, name: HMAC}, false, [verify]) >-PASS Success: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify]) >-PASS Success: generateKey({hash: SHA-1, length: 160, name: HMAC}, false, [sign, verify, sign, verify]) >-PASS Success: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, verify, sign, verify]) >-PASS Success: generateKey({hash: SHA-256, length: 256, name: HMAC}, false, [sign]) >-PASS Success: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign]) >-PASS Success: generateKey({hash: SHA-256, length: 256, name: HMAC}, false, [verify, sign]) >-PASS Success: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, sign]) >-PASS Success: generateKey({hash: SHA-256, length: 256, name: HMAC}, false, [verify]) >-PASS Success: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify]) >-PASS Success: generateKey({hash: SHA-256, length: 256, name: HMAC}, false, [sign, verify, sign, verify]) >-PASS Success: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, verify, sign, verify]) >-PASS Success: generateKey({hash: SHA-384, length: 384, name: HMAC}, false, [sign]) >-PASS Success: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign]) >-PASS Success: generateKey({hash: SHA-384, length: 384, name: HMAC}, false, [verify, sign]) >-PASS Success: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, sign]) >-PASS Success: generateKey({hash: SHA-384, length: 384, name: HMAC}, false, [verify]) >-PASS Success: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify]) >-PASS Success: generateKey({hash: SHA-384, length: 384, name: HMAC}, false, [sign, verify, sign, verify]) >-PASS Success: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, verify, sign, verify]) >-PASS Success: generateKey({hash: SHA-512, length: 512, name: HMAC}, false, [sign]) >-PASS Success: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign]) >-PASS Success: generateKey({hash: SHA-512, length: 512, name: HMAC}, false, [verify, sign]) >-PASS Success: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, sign]) >-PASS Success: generateKey({hash: SHA-512, length: 512, name: HMAC}, false, [verify]) >-PASS Success: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify]) >-PASS Success: generateKey({hash: SHA-512, length: 512, name: HMAC}, false, [sign, verify, sign, verify]) >-PASS Success: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, verify, sign, verify]) >-PASS Success: generateKey({hash: SHA-1, length: 160, name: hmac}, false, [sign]) >-PASS Success: generateKey({hash: SHA-1, length: 160, name: hmac}, true, [sign]) >-PASS Success: generateKey({hash: SHA-1, length: 160, name: hmac}, false, [verify, sign]) >-PASS Success: generateKey({hash: SHA-1, length: 160, name: hmac}, true, [verify, sign]) >-PASS Success: generateKey({hash: SHA-1, length: 160, name: hmac}, false, [verify]) >-PASS Success: generateKey({hash: SHA-1, length: 160, name: hmac}, true, [verify]) >-PASS Success: generateKey({hash: SHA-1, length: 160, name: hmac}, false, [sign, verify, sign, verify]) >-PASS Success: generateKey({hash: SHA-1, length: 160, name: hmac}, true, [sign, verify, sign, verify]) >-PASS Success: generateKey({hash: SHA-256, length: 256, name: hmac}, false, [sign]) >-PASS Success: generateKey({hash: SHA-256, length: 256, name: hmac}, true, [sign]) >-PASS Success: generateKey({hash: SHA-256, length: 256, name: hmac}, false, [verify, sign]) >-PASS Success: generateKey({hash: SHA-256, length: 256, name: hmac}, true, [verify, sign]) >-PASS Success: generateKey({hash: SHA-256, length: 256, name: hmac}, false, [verify]) >-PASS Success: generateKey({hash: SHA-256, length: 256, name: hmac}, true, [verify]) >-PASS Success: generateKey({hash: SHA-256, length: 256, name: hmac}, false, [sign, verify, sign, verify]) >-PASS Success: generateKey({hash: SHA-256, length: 256, name: hmac}, true, [sign, verify, sign, verify]) >-PASS Success: generateKey({hash: SHA-384, length: 384, name: hmac}, false, [sign]) >-PASS Success: generateKey({hash: SHA-384, length: 384, name: hmac}, true, [sign]) >-PASS Success: generateKey({hash: SHA-384, length: 384, name: hmac}, false, [verify, sign]) >-PASS Success: generateKey({hash: SHA-384, length: 384, name: hmac}, true, [verify, sign]) >-PASS Success: generateKey({hash: SHA-384, length: 384, name: hmac}, false, [verify]) >-PASS Success: generateKey({hash: SHA-384, length: 384, name: hmac}, true, [verify]) >-PASS Success: generateKey({hash: SHA-384, length: 384, name: hmac}, false, [sign, verify, sign, verify]) >-PASS Success: generateKey({hash: SHA-384, length: 384, name: hmac}, true, [sign, verify, sign, verify]) >-PASS Success: generateKey({hash: SHA-512, length: 512, name: hmac}, false, [sign]) >-PASS Success: generateKey({hash: SHA-512, length: 512, name: hmac}, true, [sign]) >-PASS Success: generateKey({hash: SHA-512, length: 512, name: hmac}, false, [verify, sign]) >-PASS Success: generateKey({hash: SHA-512, length: 512, name: hmac}, true, [verify, sign]) >-PASS Success: generateKey({hash: SHA-512, length: 512, name: hmac}, false, [verify]) >-PASS Success: generateKey({hash: SHA-512, length: 512, name: hmac}, true, [verify]) >-PASS Success: generateKey({hash: SHA-512, length: 512, name: hmac}, false, [sign, verify, sign, verify]) >-PASS Success: generateKey({hash: SHA-512, length: 512, name: hmac}, true, [sign, verify, sign, verify]) >-PASS Success: generateKey({hash: SHA-1, length: 160, name: Hmac}, false, [sign]) >-PASS Success: generateKey({hash: SHA-1, length: 160, name: Hmac}, true, [sign]) >-PASS Success: generateKey({hash: SHA-1, length: 160, name: Hmac}, false, [verify, sign]) >-PASS Success: generateKey({hash: SHA-1, length: 160, name: Hmac}, true, [verify, sign]) >-PASS Success: generateKey({hash: SHA-1, length: 160, name: Hmac}, false, [verify]) >-PASS Success: generateKey({hash: SHA-1, length: 160, name: Hmac}, true, [verify]) >-PASS Success: generateKey({hash: SHA-1, length: 160, name: Hmac}, false, [sign, verify, sign, verify]) >-PASS Success: generateKey({hash: SHA-1, length: 160, name: Hmac}, true, [sign, verify, sign, verify]) >-PASS Success: generateKey({hash: SHA-256, length: 256, name: Hmac}, false, [sign]) >-PASS Success: generateKey({hash: SHA-256, length: 256, name: Hmac}, true, [sign]) >-PASS Success: generateKey({hash: SHA-256, length: 256, name: Hmac}, false, [verify, sign]) >-PASS Success: generateKey({hash: SHA-256, length: 256, name: Hmac}, true, [verify, sign]) >-PASS Success: generateKey({hash: SHA-256, length: 256, name: Hmac}, false, [verify]) >-PASS Success: generateKey({hash: SHA-256, length: 256, name: Hmac}, true, [verify]) >-PASS Success: generateKey({hash: SHA-256, length: 256, name: Hmac}, false, [sign, verify, sign, verify]) >-PASS Success: generateKey({hash: SHA-256, length: 256, name: Hmac}, true, [sign, verify, sign, verify]) >-PASS Success: generateKey({hash: SHA-384, length: 384, name: Hmac}, false, [sign]) >-PASS Success: generateKey({hash: SHA-384, length: 384, name: Hmac}, true, [sign]) >-PASS Success: generateKey({hash: SHA-384, length: 384, name: Hmac}, false, [verify, sign]) >-PASS Success: generateKey({hash: SHA-384, length: 384, name: Hmac}, true, [verify, sign]) >-PASS Success: generateKey({hash: SHA-384, length: 384, name: Hmac}, false, [verify]) >-PASS Success: generateKey({hash: SHA-384, length: 384, name: Hmac}, true, [verify]) >-PASS Success: generateKey({hash: SHA-384, length: 384, name: Hmac}, false, [sign, verify, sign, verify]) >-PASS Success: generateKey({hash: SHA-384, length: 384, name: Hmac}, true, [sign, verify, sign, verify]) >-PASS Success: generateKey({hash: SHA-512, length: 512, name: Hmac}, false, [sign]) >-PASS Success: generateKey({hash: SHA-512, length: 512, name: Hmac}, true, [sign]) >-PASS Success: generateKey({hash: SHA-512, length: 512, name: Hmac}, false, [verify, sign]) >-PASS Success: generateKey({hash: SHA-512, length: 512, name: Hmac}, true, [verify, sign]) >-PASS Success: generateKey({hash: SHA-512, length: 512, name: Hmac}, false, [verify]) >-PASS Success: generateKey({hash: SHA-512, length: 512, name: Hmac}, true, [verify]) >-PASS Success: generateKey({hash: SHA-512, length: 512, name: Hmac}, false, [sign, verify, sign, verify]) >-PASS Success: generateKey({hash: SHA-512, length: 512, name: Hmac}, true, [sign, verify, sign, verify]) >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_HMAC.https.worker.html b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_HMAC.https.worker.html >deleted file mode 100644 >index 2382913528e693b3a5d56c660a45060980b548c3..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_HMAC.https.worker.html >+++ /dev/null >@@ -1 +0,0 @@ >-<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_HMAC.https.worker.js b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_HMAC.https.worker.js >deleted file mode 100644 >index 2b50b90905858eae62f4ced5644cfe8403d7a569..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_HMAC.https.worker.js >+++ /dev/null >@@ -1,7 +0,0 @@ >-// META: timeout=long >-importScripts("/resources/testharness.js"); >-importScripts("../util/helpers.js"); >-importScripts("successes.js"); >- >-run_test(["HMAC"]); >-done(); >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-OAEP.https.any-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-OAEP.https.any-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..1f58d695d247ddff18e05be392a212e7087f5e05 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-OAEP.https.any-expected.txt >@@ -0,0 +1,4 @@ >+CONSOLE MESSAGE: line 80: ReferenceError: Can't find variable: subsetTest >+ >+FAIL Untitled ReferenceError: Can't find variable: subsetTest >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-OAEP.https.any.html b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-OAEP.https.any.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-OAEP.https.any.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-OAEP.https.any.js b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-OAEP.https.any.js >new file mode 100644 >index 0000000000000000000000000000000000000000..b0412286c58ebcc5549963c99b70d793717c82b8 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-OAEP.https.any.js >@@ -0,0 +1,21 @@ >+// META: timeout=long >+// META: variant=?1-10 >+// META: variant=?11-20 >+// META: variant=?21-30 >+// META: variant=?31-40 >+// META: variant=?41-50 >+// META: variant=?51-60 >+// META: variant=?61-70 >+// META: variant=?71-80 >+// META: variant=?81-90 >+// META: variant=?91-100 >+// META: variant=?101-110 >+// META: variant=?111-120 >+// META: variant=?121-130 >+// META: variant=?131-140 >+// META: variant=?141-150 >+// META: variant=?151-last >+// META: script=../util/helpers.js >+// META: script=/common/subset-tests.js >+// META: script=successes.js >+run_test(["RSA-OAEP"]); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-OAEP.https.any.worker-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-OAEP.https.any.worker-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..49c2e9eae579f16f4040d13b6fb92674b05e62f3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-OAEP.https.any.worker-expected.txt >@@ -0,0 +1,4 @@ >+ >+Harness Error (FAIL), message = Error in remote https://localhost:9443/WebCryptoAPI/generateKey/successes_RSA-OAEP.https.any.worker.js: NetworkError: Failed to load script >+ >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-OAEP.https.any.worker.html b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-OAEP.https.any.worker.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-OAEP.https.any.worker.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-OAEP.https.worker-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-OAEP.https.worker-expected.txt >deleted file mode 100644 >index 6a7a67bc53a5310e449e1561f7cb200eecc6dced..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-OAEP.https.worker-expected.txt >+++ /dev/null >@@ -1,159 +0,0 @@ >- >-Harness Error (TIMEOUT), message = null >- >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, encrypt]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, encrypt]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, encrypt]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, encrypt]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [wrapKey, decrypt]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, decrypt]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, encrypt]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, encrypt]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, encrypt]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, encrypt]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [wrapKey, decrypt]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, decrypt]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, encrypt]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, encrypt]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, encrypt]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, encrypt]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [wrapKey, decrypt]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, decrypt]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, encrypt]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, encrypt]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, encrypt]) >-TIMEOUT Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey, decrypt, encrypt]) Test timed out >-NOTRUN Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-NOTRUN Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, decrypt, encrypt]) >-NOTRUN Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, encrypt]) >-NOTRUN Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey, encrypt]) >-NOTRUN Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, encrypt]) >-NOTRUN Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, encrypt]) >-NOTRUN Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, encrypt]) >-NOTRUN Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) >-NOTRUN Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >-NOTRUN Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [wrapKey, decrypt]) >-NOTRUN Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt]) >-NOTRUN Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey, decrypt]) >-NOTRUN Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt]) >-NOTRUN Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, decrypt]) >-NOTRUN Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt]) >-NOTRUN Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey]) >-NOTRUN Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey]) >-NOTRUN Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey]) >-NOTRUN Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey]) >-NOTRUN Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-NOTRUN Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-NOTRUN Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, encrypt]) >-NOTRUN Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, encrypt]) >-NOTRUN Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [wrapKey, decrypt, encrypt]) >-NOTRUN Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, encrypt]) >-NOTRUN Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-NOTRUN Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-NOTRUN Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, decrypt, encrypt]) >-NOTRUN Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, encrypt]) >-NOTRUN Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey, encrypt]) >-NOTRUN Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, encrypt]) >-NOTRUN Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, encrypt]) >-NOTRUN Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, encrypt]) >-NOTRUN Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) >-NOTRUN Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >-NOTRUN Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [wrapKey, decrypt]) >-NOTRUN Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt]) >-NOTRUN Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey, decrypt]) >-NOTRUN Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt]) >-NOTRUN Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, decrypt]) >-NOTRUN Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt]) >-NOTRUN Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey]) >-NOTRUN Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey]) >-NOTRUN Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey]) >-NOTRUN Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey]) >-NOTRUN Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-NOTRUN Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-NOTRUN Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, encrypt]) >-NOTRUN Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, encrypt]) >-NOTRUN Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [wrapKey, decrypt, encrypt]) >-NOTRUN Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, encrypt]) >-NOTRUN Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-NOTRUN Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-NOTRUN Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, decrypt, encrypt]) >-NOTRUN Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, encrypt]) >-NOTRUN Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey, encrypt]) >-NOTRUN Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, encrypt]) >-NOTRUN Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, encrypt]) >-NOTRUN Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, encrypt]) >-NOTRUN Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) >-NOTRUN Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >-NOTRUN Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [wrapKey, decrypt]) >-NOTRUN Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt]) >-NOTRUN Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey, decrypt]) >-NOTRUN Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt]) >-NOTRUN Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, decrypt]) >-NOTRUN Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt]) >-NOTRUN Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey]) >-NOTRUN Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey]) >-NOTRUN Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey]) >-NOTRUN Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey]) >-NOTRUN Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-NOTRUN Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-OAEP.https.worker.html b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-OAEP.https.worker.html >deleted file mode 100644 >index 2382913528e693b3a5d56c660a45060980b548c3..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-OAEP.https.worker.html >+++ /dev/null >@@ -1 +0,0 @@ >-<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-OAEP.https.worker.js b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-OAEP.https.worker.js >deleted file mode 100644 >index 4b3538da689681ceb504f34ca8b0066cf36131c5..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-OAEP.https.worker.js >+++ /dev/null >@@ -1,7 +0,0 @@ >-// META: timeout=long >-importScripts("/resources/testharness.js"); >-importScripts("../util/helpers.js"); >-importScripts("successes.js"); >- >-run_test(["RSA-OAEP"]); >-done(); >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-PSS.https.any-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-PSS.https.any-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..1f58d695d247ddff18e05be392a212e7087f5e05 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-PSS.https.any-expected.txt >@@ -0,0 +1,4 @@ >+CONSOLE MESSAGE: line 80: ReferenceError: Can't find variable: subsetTest >+ >+FAIL Untitled ReferenceError: Can't find variable: subsetTest >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-PSS.https.any.html b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-PSS.https.any.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-PSS.https.any.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-PSS.https.any.js b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-PSS.https.any.js >new file mode 100644 >index 0000000000000000000000000000000000000000..ea91c8f99b04522c519d32e81f80a9ecc5781ae7 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-PSS.https.any.js >@@ -0,0 +1,9 @@ >+// META: timeout=long >+// META: variant=?1-10 >+// META: variant=?11-20 >+// META: variant=?21-30 >+// META: variant=?31-last >+// META: script=../util/helpers.js >+// META: script=/common/subset-tests.js >+// META: script=successes.js >+run_test(["RSA-PSS"]); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-PSS.https.any.worker-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-PSS.https.any.worker-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..79d777e6605a876613b8e540c8076845b33424e3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-PSS.https.any.worker-expected.txt >@@ -0,0 +1,4 @@ >+ >+Harness Error (FAIL), message = Error in remote https://localhost:9443/WebCryptoAPI/generateKey/successes_RSA-PSS.https.any.worker.js: NetworkError: Failed to load script >+ >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-PSS.https.any.worker.html b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-PSS.https.any.worker.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-PSS.https.any.worker.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-PSS.https.worker-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-PSS.https.worker-expected.txt >deleted file mode 100644 >index 459748b9835082e4a3d27bdda79f59e8cacbbf54..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-PSS.https.worker-expected.txt >+++ /dev/null >@@ -1,38 +0,0 @@ >- >-FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) assert_unreached: Threw an unexpected error: NotSupportedError: The operation is not supported. Reached unreachable code >-FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) assert_unreached: Threw an unexpected error: NotSupportedError: The operation is not supported. Reached unreachable code >-FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [verify, sign]) assert_unreached: Threw an unexpected error: NotSupportedError: The operation is not supported. Reached unreachable code >-FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign]) assert_unreached: Threw an unexpected error: NotSupportedError: The operation is not supported. Reached unreachable code >-FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, verify, sign, sign, verify]) assert_unreached: Threw an unexpected error: NotSupportedError: The operation is not supported. Reached unreachable code >-FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify]) assert_unreached: Threw an unexpected error: NotSupportedError: The operation is not supported. Reached unreachable code >-FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) assert_unreached: Threw an unexpected error: NotSupportedError: The operation is not supported. Reached unreachable code >-FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) assert_unreached: Threw an unexpected error: NotSupportedError: The operation is not supported. Reached unreachable code >-FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [verify, sign]) assert_unreached: Threw an unexpected error: NotSupportedError: The operation is not supported. Reached unreachable code >-FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign]) assert_unreached: Threw an unexpected error: NotSupportedError: The operation is not supported. Reached unreachable code >-FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, verify, sign, sign, verify]) assert_unreached: Threw an unexpected error: NotSupportedError: The operation is not supported. Reached unreachable code >-FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify]) assert_unreached: Threw an unexpected error: NotSupportedError: The operation is not supported. Reached unreachable code >-FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) assert_unreached: Threw an unexpected error: NotSupportedError: The operation is not supported. Reached unreachable code >-FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) assert_unreached: Threw an unexpected error: NotSupportedError: The operation is not supported. Reached unreachable code >-FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [verify, sign]) assert_unreached: Threw an unexpected error: NotSupportedError: The operation is not supported. Reached unreachable code >-FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign]) assert_unreached: Threw an unexpected error: NotSupportedError: The operation is not supported. Reached unreachable code >-FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, verify, sign, sign, verify]) assert_unreached: Threw an unexpected error: NotSupportedError: The operation is not supported. Reached unreachable code >-FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify]) assert_unreached: Threw an unexpected error: NotSupportedError: The operation is not supported. Reached unreachable code >-FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) assert_unreached: Threw an unexpected error: NotSupportedError: The operation is not supported. Reached unreachable code >-FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) assert_unreached: Threw an unexpected error: NotSupportedError: The operation is not supported. Reached unreachable code >-FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [verify, sign]) assert_unreached: Threw an unexpected error: NotSupportedError: The operation is not supported. Reached unreachable code >-FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign]) assert_unreached: Threw an unexpected error: NotSupportedError: The operation is not supported. Reached unreachable code >-FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, verify, sign, sign, verify]) assert_unreached: Threw an unexpected error: NotSupportedError: The operation is not supported. Reached unreachable code >-FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify]) assert_unreached: Threw an unexpected error: NotSupportedError: The operation is not supported. Reached unreachable code >-FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) assert_unreached: Threw an unexpected error: NotSupportedError: The operation is not supported. Reached unreachable code >-FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) assert_unreached: Threw an unexpected error: NotSupportedError: The operation is not supported. Reached unreachable code >-FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [verify, sign]) assert_unreached: Threw an unexpected error: NotSupportedError: The operation is not supported. Reached unreachable code >-FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign]) assert_unreached: Threw an unexpected error: NotSupportedError: The operation is not supported. Reached unreachable code >-FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, verify, sign, sign, verify]) assert_unreached: Threw an unexpected error: NotSupportedError: The operation is not supported. Reached unreachable code >-FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify]) assert_unreached: Threw an unexpected error: NotSupportedError: The operation is not supported. Reached unreachable code >-FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) assert_unreached: Threw an unexpected error: NotSupportedError: The operation is not supported. Reached unreachable code >-FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) assert_unreached: Threw an unexpected error: NotSupportedError: The operation is not supported. Reached unreachable code >-FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [verify, sign]) assert_unreached: Threw an unexpected error: NotSupportedError: The operation is not supported. Reached unreachable code >-FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign]) assert_unreached: Threw an unexpected error: NotSupportedError: The operation is not supported. Reached unreachable code >-FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, verify, sign, sign, verify]) assert_unreached: Threw an unexpected error: NotSupportedError: The operation is not supported. Reached unreachable code >-FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify]) assert_unreached: Threw an unexpected error: NotSupportedError: The operation is not supported. Reached unreachable code >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-PSS.https.worker.html b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-PSS.https.worker.html >deleted file mode 100644 >index 2382913528e693b3a5d56c660a45060980b548c3..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-PSS.https.worker.html >+++ /dev/null >@@ -1 +0,0 @@ >-<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-PSS.https.worker.js b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-PSS.https.worker.js >deleted file mode 100644 >index 52364f5c7f55b701988cb86a1e3f5f4716a0d2d6..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-PSS.https.worker.js >+++ /dev/null >@@ -1,7 +0,0 @@ >-// META: timeout=long >-importScripts("/resources/testharness.js"); >-importScripts("../util/helpers.js"); >-importScripts("successes.js"); >- >-run_test(["RSA-PSS"]); >-done(); >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSASSA-PKCS1-v1_5.https.any-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSASSA-PKCS1-v1_5.https.any-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..1f58d695d247ddff18e05be392a212e7087f5e05 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSASSA-PKCS1-v1_5.https.any-expected.txt >@@ -0,0 +1,4 @@ >+CONSOLE MESSAGE: line 80: ReferenceError: Can't find variable: subsetTest >+ >+FAIL Untitled ReferenceError: Can't find variable: subsetTest >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSASSA-PKCS1-v1_5.https.any.html b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSASSA-PKCS1-v1_5.https.any.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSASSA-PKCS1-v1_5.https.any.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSASSA-PKCS1-v1_5.https.any.js b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSASSA-PKCS1-v1_5.https.any.js >new file mode 100644 >index 0000000000000000000000000000000000000000..fc785f9b31c96a04f12c1d4917d4b274694d8f43 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSASSA-PKCS1-v1_5.https.any.js >@@ -0,0 +1,9 @@ >+// META: timeout=long >+// META: variant=?1-10 >+// META: variant=?11-20 >+// META: variant=?21-30 >+// META: variant=?31-last >+// META: script=../util/helpers.js >+// META: script=/common/subset-tests.js >+// META: script=successes.js >+run_test(["RSASSA-PKCS1-v1_5"]); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSASSA-PKCS1-v1_5.https.any.worker-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSASSA-PKCS1-v1_5.https.any.worker-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..48dea55f480f2880aef1b56a561640e131af48f3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSASSA-PKCS1-v1_5.https.any.worker-expected.txt >@@ -0,0 +1,4 @@ >+ >+Harness Error (FAIL), message = Error in remote https://localhost:9443/WebCryptoAPI/generateKey/successes_RSASSA-PKCS1-v1_5.https.any.worker.js: NetworkError: Failed to load script >+ >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSASSA-PKCS1-v1_5.https.any.worker.html b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSASSA-PKCS1-v1_5.https.any.worker.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSASSA-PKCS1-v1_5.https.any.worker.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSASSA-PKCS1-v1_5.https.worker-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSASSA-PKCS1-v1_5.https.worker-expected.txt >deleted file mode 100644 >index 7787e3b7af26be3edeee8b5ba27ece86a042ec1a..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSASSA-PKCS1-v1_5.https.worker-expected.txt >+++ /dev/null >@@ -1,38 +0,0 @@ >- >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-V1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-V1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-V1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [verify, sign]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-V1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-V1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, verify, sign, sign, verify]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-V1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-V1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-V1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-V1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [verify, sign]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-V1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-V1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, verify, sign, sign, verify]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-V1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [verify, sign]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, verify, sign, sign, verify]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [verify, sign]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, verify, sign, sign, verify]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [verify, sign]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, verify, sign, sign, verify]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [verify, sign]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, verify, sign, sign, verify]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify]) >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSASSA-PKCS1-v1_5.https.worker.html b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSASSA-PKCS1-v1_5.https.worker.html >deleted file mode 100644 >index 2382913528e693b3a5d56c660a45060980b548c3..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSASSA-PKCS1-v1_5.https.worker.html >+++ /dev/null >@@ -1 +0,0 @@ >-<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSASSA-PKCS1-v1_5.https.worker.js b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSASSA-PKCS1-v1_5.https.worker.js >deleted file mode 100644 >index 4c6a02a98c6251de783e63819409dde205653abc..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSASSA-PKCS1-v1_5.https.worker.js >+++ /dev/null >@@ -1,7 +0,0 @@ >-// META: timeout=long >-importScripts("/resources/testharness.js"); >-importScripts("../util/helpers.js"); >-importScripts("successes.js"); >- >-run_test(["RSASSA-PKCS1-v1_5"]); >-done(); >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_aes-cbc.https-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_aes-cbc.https-expected.txt >deleted file mode 100644 >index 8a27e463c63a3915b24c938dfeb7c0d5b0686608..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_aes-cbc.https-expected.txt >+++ /dev/null >@@ -1,294 +0,0 @@ >-generateKey Tests for Good Parameters >- >-Warning! RSA key generation is intrinsically very slow, so the related tests can take up to several minutes to complete, depending on browser! >- >- >-PASS Success: generateKey({length: 128, name: AES-CBC}, false, [encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, true, [encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, false, [decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, true, [decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, false, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, false, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, false, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, false, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, false, [decrypt]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, true, [decrypt]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, false, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, false, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, false, [wrapKey]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, true, [wrapKey]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, false, [unwrapKey]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, false, [encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, true, [encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, false, [decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, true, [decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, false, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, false, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, false, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, false, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, false, [decrypt]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, true, [decrypt]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, false, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, false, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, false, [wrapKey]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, true, [wrapKey]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, false, [unwrapKey]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, false, [encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, true, [encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, false, [decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, true, [decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, false, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, false, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, false, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, false, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, false, [decrypt]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, true, [decrypt]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, false, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, false, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, false, [wrapKey]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, true, [wrapKey]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, false, [unwrapKey]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, false, [encrypt]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, true, [encrypt]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, false, [decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, true, [decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, false, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, true, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, false, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, true, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, false, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, true, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, false, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, true, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, false, [decrypt]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, true, [decrypt]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, false, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, true, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, false, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, true, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, false, [wrapKey]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, true, [wrapKey]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, false, [unwrapKey]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, true, [unwrapKey]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, false, [encrypt]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, true, [encrypt]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, false, [decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, true, [decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, false, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, true, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, false, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, true, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, false, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, true, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, false, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, true, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, false, [decrypt]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, true, [decrypt]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, false, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, true, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, false, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, true, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, false, [wrapKey]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, true, [wrapKey]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, false, [unwrapKey]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, true, [unwrapKey]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, false, [encrypt]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, true, [encrypt]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, false, [decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, true, [decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, false, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, true, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, false, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, true, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, false, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, true, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, false, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, true, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, false, [decrypt]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, true, [decrypt]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, false, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, true, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, false, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, true, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, false, [wrapKey]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, true, [wrapKey]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, false, [unwrapKey]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, true, [unwrapKey]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [decrypt]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [decrypt]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [wrapKey]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [wrapKey]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [unwrapKey]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [unwrapKey]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [decrypt]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [decrypt]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [wrapKey]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [wrapKey]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [unwrapKey]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [unwrapKey]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [decrypt]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [decrypt]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [wrapKey]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [wrapKey]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [unwrapKey]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [unwrapKey]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_aes-cbc.https.html b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_aes-cbc.https.html >deleted file mode 100644 >index a3054a57a99a6da759d7aa31cc88f7c1f60ae57a..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_aes-cbc.https.html >+++ /dev/null >@@ -1,23 +0,0 @@ >-<!DOCTYPE html> >-<meta charset=utf-8> >-<meta name="timeout" content="long"> >-<title>WebCryptoAPI: generateKey() Successful Calls</title> >-<link rel="author" title="Charles Engelke" href="mailto:w3c@engelke.com"> >-<link rel="help" href="https://www.w3.org/TR/WebCryptoAPI/#dfn-SubtleCrypto-method-generateKey"> >-<script src="/resources/testharness.js"></script> >-<script src="/resources/testharnessreport.js"></script> >- >-<script src="/WebCryptoAPI/util/helpers.js"></script> >-<script src="successes.js"></script> >- >-<h1>generateKey Tests for Good Parameters</h1> >-<p> >- <strong>Warning!</strong> RSA key generation is intrinsically >- very slow, so the related tests can take up to >- several minutes to complete, depending on browser! >-</p> >- >-<div id="log"></div> >-<script> >-run_test("AES-CBC"); >-</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_aes-ctr-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_aes-ctr-expected.txt >deleted file mode 100644 >index 5345ac939529c1fefdb61782903282d958b2fd80..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_aes-ctr-expected.txt >+++ /dev/null >@@ -1,294 +0,0 @@ >-generateKey Tests for Good Parameters >- >-Warning! RSA key generation is intrinsically very slow, so the related tests can take up to several minutes to complete, depending on browser! >- >- >-PASS Success: generateKey({length: 128, name: AES-CTR}, false, [encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, true, [encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, false, [decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, true, [decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, false, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, false, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, false, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, false, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, false, [decrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, true, [decrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, false, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, false, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, false, [wrapKey]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, true, [wrapKey]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, false, [unwrapKey]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, false, [encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, true, [encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, false, [decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, true, [decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, false, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, false, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, false, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, false, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, false, [decrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, true, [decrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, false, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, false, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, false, [wrapKey]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, true, [wrapKey]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, false, [unwrapKey]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, false, [encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, true, [encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, false, [decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, true, [decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, false, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, false, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, false, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, false, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, false, [decrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, true, [decrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, false, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, false, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, false, [wrapKey]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, true, [wrapKey]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, false, [unwrapKey]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, false, [encrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, true, [encrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, false, [decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, true, [decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, false, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, true, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, false, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, true, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, false, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, true, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, false, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, true, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, false, [decrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, true, [decrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, false, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, true, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, false, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, true, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, false, [wrapKey]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, true, [wrapKey]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, false, [unwrapKey]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, true, [unwrapKey]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, false, [encrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, true, [encrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, false, [decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, true, [decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, false, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, true, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, false, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, true, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, false, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, true, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, false, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, true, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, false, [decrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, true, [decrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, false, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, true, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, false, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, true, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, false, [wrapKey]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, true, [wrapKey]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, false, [unwrapKey]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, true, [unwrapKey]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, false, [encrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, true, [encrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, false, [decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, true, [decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, false, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, true, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, false, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, true, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, false, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, true, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, false, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, true, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, false, [decrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, true, [decrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, false, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, true, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, false, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, true, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, false, [wrapKey]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, true, [wrapKey]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, false, [unwrapKey]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, true, [unwrapKey]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, false, [encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, true, [encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, false, [decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, true, [decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, false, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, true, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, false, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, true, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, false, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, true, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, false, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, true, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, false, [decrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, true, [decrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, false, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, true, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, false, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, true, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, false, [wrapKey]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, true, [wrapKey]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, false, [unwrapKey]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, true, [unwrapKey]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, false, [encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, true, [encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, false, [decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, true, [decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, false, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, true, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, false, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, true, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, false, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, true, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, false, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, true, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, false, [decrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, true, [decrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, false, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, true, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, false, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, true, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, false, [wrapKey]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, true, [wrapKey]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, false, [unwrapKey]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, true, [unwrapKey]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, false, [encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, true, [encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, false, [decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, true, [decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, false, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, true, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, false, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, true, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, false, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, true, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, false, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, true, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, false, [decrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, true, [decrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, false, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, true, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, false, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, true, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, false, [wrapKey]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, true, [wrapKey]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, false, [unwrapKey]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, true, [unwrapKey]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_aes-ctr.https-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_aes-ctr.https-expected.txt >deleted file mode 100644 >index 5345ac939529c1fefdb61782903282d958b2fd80..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_aes-ctr.https-expected.txt >+++ /dev/null >@@ -1,294 +0,0 @@ >-generateKey Tests for Good Parameters >- >-Warning! RSA key generation is intrinsically very slow, so the related tests can take up to several minutes to complete, depending on browser! >- >- >-PASS Success: generateKey({length: 128, name: AES-CTR}, false, [encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, true, [encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, false, [decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, true, [decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, false, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, false, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, false, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, false, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, false, [decrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, true, [decrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, false, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, false, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, false, [wrapKey]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, true, [wrapKey]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, false, [unwrapKey]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, false, [encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, true, [encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, false, [decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, true, [decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, false, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, false, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, false, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, false, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, false, [decrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, true, [decrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, false, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, false, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, false, [wrapKey]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, true, [wrapKey]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, false, [unwrapKey]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, false, [encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, true, [encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, false, [decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, true, [decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, false, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, false, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, false, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, false, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, false, [decrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, true, [decrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, false, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, false, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, false, [wrapKey]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, true, [wrapKey]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, false, [unwrapKey]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, false, [encrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, true, [encrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, false, [decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, true, [decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, false, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, true, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, false, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, true, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, false, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, true, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, false, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, true, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, false, [decrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, true, [decrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, false, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, true, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, false, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, true, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, false, [wrapKey]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, true, [wrapKey]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, false, [unwrapKey]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, true, [unwrapKey]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, false, [encrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, true, [encrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, false, [decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, true, [decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, false, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, true, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, false, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, true, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, false, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, true, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, false, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, true, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, false, [decrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, true, [decrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, false, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, true, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, false, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, true, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, false, [wrapKey]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, true, [wrapKey]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, false, [unwrapKey]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, true, [unwrapKey]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, false, [encrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, true, [encrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, false, [decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, true, [decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, false, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, true, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, false, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, true, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, false, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, true, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, false, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, true, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, false, [decrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, true, [decrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, false, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, true, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, false, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, true, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, false, [wrapKey]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, true, [wrapKey]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, false, [unwrapKey]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, true, [unwrapKey]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, false, [encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, true, [encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, false, [decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, true, [decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, false, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, true, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, false, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, true, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, false, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, true, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, false, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, true, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, false, [decrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, true, [decrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, false, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, true, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, false, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, true, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, false, [wrapKey]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, true, [wrapKey]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, false, [unwrapKey]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, true, [unwrapKey]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, false, [encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, true, [encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, false, [decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, true, [decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, false, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, true, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, false, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, true, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, false, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, true, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, false, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, true, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, false, [decrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, true, [decrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, false, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, true, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, false, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, true, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, false, [wrapKey]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, true, [wrapKey]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, false, [unwrapKey]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, true, [unwrapKey]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, false, [encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, true, [encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, false, [decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, true, [decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, false, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, true, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, false, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, true, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, false, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, true, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, false, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, true, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, false, [decrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, true, [decrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, false, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, true, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, false, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, true, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, false, [wrapKey]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, true, [wrapKey]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, false, [unwrapKey]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, true, [unwrapKey]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_aes-ctr.https.html b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_aes-ctr.https.html >deleted file mode 100644 >index bb1abf0d948e893ae30508ee7592169fd6db5a87..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_aes-ctr.https.html >+++ /dev/null >@@ -1,23 +0,0 @@ >-<!DOCTYPE html> >-<meta charset=utf-8> >-<meta name="timeout" content="long"> >-<title>WebCryptoAPI: generateKey() Successful Calls</title> >-<link rel="author" title="Charles Engelke" href="mailto:w3c@engelke.com"> >-<link rel="help" href="https://www.w3.org/TR/WebCryptoAPI/#dfn-SubtleCrypto-method-generateKey"> >-<script src="/resources/testharness.js"></script> >-<script src="/resources/testharnessreport.js"></script> >- >-<script src="/WebCryptoAPI/util/helpers.js"></script> >-<script src="successes.js"></script> >- >-<h1>generateKey Tests for Good Parameters</h1> >-<p> >- <strong>Warning!</strong> RSA key generation is intrinsically >- very slow, so the related tests can take up to >- several minutes to complete, depending on browser! >-</p> >- >-<div id="log"></div> >-<script> >-run_test("AES-CTR"); >-</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_AES-CBC-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_AES-CBC-expected.txt >deleted file mode 100644 >index 3ed002b291ef685c3410b2b87c9008d02c3ebe4d..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_AES-CBC-expected.txt >+++ /dev/null >@@ -1,742 +0,0 @@ >-generateKey Tests for Bad Parameters >- >- >-PASS Bad algorithm: generateKey(AES, false, [decrypt]) >-PASS Bad algorithm: generateKey(AES, true, [decrypt]) >-PASS Bad algorithm: generateKey(AES, RED, [decrypt]) >-PASS Bad algorithm: generateKey(AES, 7, [decrypt]) >-PASS Bad algorithm: generateKey(AES, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey(AES, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey(AES, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey(AES, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey(AES, false, [sign]) >-PASS Bad algorithm: generateKey(AES, true, [sign]) >-PASS Bad algorithm: generateKey(AES, RED, [sign]) >-PASS Bad algorithm: generateKey(AES, 7, [sign]) >-PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey(AES, false, [deriveBits]) >-PASS Bad algorithm: generateKey(AES, true, [deriveBits]) >-PASS Bad algorithm: generateKey(AES, RED, [deriveBits]) >-PASS Bad algorithm: generateKey(AES, 7, [deriveBits]) >-PASS Bad algorithm: generateKey(AES, false, []) >-PASS Bad algorithm: generateKey(AES, true, []) >-PASS Bad algorithm: generateKey(AES, RED, []) >-PASS Bad algorithm: generateKey(AES, 7, []) >-PASS Bad algorithm: generateKey(AES, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey(AES, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey(AES, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey(AES, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, false, [decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, true, [decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, false, [sign]) >-PASS Bad algorithm: generateKey({name: AES}, true, [sign]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [sign]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [sign]) >-PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, false, []) >-PASS Bad algorithm: generateKey({name: AES}, true, []) >-PASS Bad algorithm: generateKey({name: AES}, RED, []) >-PASS Bad algorithm: generateKey({name: AES}, 7, []) >-PASS Bad algorithm: generateKey({name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, []) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, []) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, []) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, []) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, []) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, []) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, []) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, []) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [encrypt, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, encrypt, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, encrypt, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [decrypt, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, decrypt, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, decrypt, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [encrypt, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, encrypt, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, encrypt, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [decrypt, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, decrypt, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, decrypt, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [decrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, decrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, decrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [decrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, decrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, decrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [encrypt, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, encrypt, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, encrypt, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [decrypt, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, decrypt, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, decrypt, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [encrypt, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, encrypt, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, encrypt, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [decrypt, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, decrypt, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, decrypt, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [decrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, decrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, decrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [decrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, decrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, decrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [encrypt, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, encrypt, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, encrypt, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [decrypt, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, decrypt, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, decrypt, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [encrypt, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, encrypt, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, encrypt, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [decrypt, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, decrypt, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, decrypt, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [decrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, decrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, decrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [decrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, decrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, decrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [decrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [decrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, []) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, []) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [decrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [decrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, []) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, []) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [decrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [decrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, []) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, []) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [decrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [decrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, []) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, []) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [decrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [decrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, []) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, []) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [decrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [decrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, []) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, []) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Empty usages: generateKey({length: 128, name: AES-CBC}, false, []) >-PASS Empty usages: generateKey({length: 128, name: AES-CBC}, true, []) >-PASS Empty usages: generateKey({length: 192, name: AES-CBC}, false, []) >-PASS Empty usages: generateKey({length: 192, name: AES-CBC}, true, []) >-PASS Empty usages: generateKey({length: 256, name: AES-CBC}, false, []) >-PASS Empty usages: generateKey({length: 256, name: AES-CBC}, true, []) >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_AES-CBC.https-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_AES-CBC.https-expected.txt >deleted file mode 100644 >index 3ed002b291ef685c3410b2b87c9008d02c3ebe4d..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_AES-CBC.https-expected.txt >+++ /dev/null >@@ -1,742 +0,0 @@ >-generateKey Tests for Bad Parameters >- >- >-PASS Bad algorithm: generateKey(AES, false, [decrypt]) >-PASS Bad algorithm: generateKey(AES, true, [decrypt]) >-PASS Bad algorithm: generateKey(AES, RED, [decrypt]) >-PASS Bad algorithm: generateKey(AES, 7, [decrypt]) >-PASS Bad algorithm: generateKey(AES, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey(AES, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey(AES, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey(AES, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey(AES, false, [sign]) >-PASS Bad algorithm: generateKey(AES, true, [sign]) >-PASS Bad algorithm: generateKey(AES, RED, [sign]) >-PASS Bad algorithm: generateKey(AES, 7, [sign]) >-PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey(AES, false, [deriveBits]) >-PASS Bad algorithm: generateKey(AES, true, [deriveBits]) >-PASS Bad algorithm: generateKey(AES, RED, [deriveBits]) >-PASS Bad algorithm: generateKey(AES, 7, [deriveBits]) >-PASS Bad algorithm: generateKey(AES, false, []) >-PASS Bad algorithm: generateKey(AES, true, []) >-PASS Bad algorithm: generateKey(AES, RED, []) >-PASS Bad algorithm: generateKey(AES, 7, []) >-PASS Bad algorithm: generateKey(AES, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey(AES, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey(AES, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey(AES, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, false, [decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, true, [decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, false, [sign]) >-PASS Bad algorithm: generateKey({name: AES}, true, [sign]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [sign]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [sign]) >-PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, false, []) >-PASS Bad algorithm: generateKey({name: AES}, true, []) >-PASS Bad algorithm: generateKey({name: AES}, RED, []) >-PASS Bad algorithm: generateKey({name: AES}, 7, []) >-PASS Bad algorithm: generateKey({name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, []) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, []) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, []) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, []) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, []) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, []) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, []) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, []) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [encrypt, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, encrypt, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, encrypt, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [decrypt, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, decrypt, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, decrypt, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [encrypt, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, encrypt, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, encrypt, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [decrypt, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, decrypt, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, decrypt, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [decrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, decrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, decrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [decrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, decrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, decrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [encrypt, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, encrypt, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, encrypt, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [decrypt, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, decrypt, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, decrypt, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [encrypt, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, encrypt, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, encrypt, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [decrypt, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, decrypt, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, decrypt, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [decrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, decrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, decrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [decrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, decrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, decrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [encrypt, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, encrypt, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, encrypt, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [decrypt, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, decrypt, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, decrypt, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [encrypt, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, encrypt, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, encrypt, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [decrypt, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, decrypt, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, decrypt, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [decrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, decrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, decrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [decrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, decrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, decrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [decrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [decrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, []) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, []) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [decrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [decrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, []) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, []) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [decrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [decrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, []) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, []) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [decrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [decrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, []) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, []) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [decrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [decrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, []) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, []) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [decrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [decrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, []) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, []) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Empty usages: generateKey({length: 128, name: AES-CBC}, false, []) >-PASS Empty usages: generateKey({length: 128, name: AES-CBC}, true, []) >-PASS Empty usages: generateKey({length: 192, name: AES-CBC}, false, []) >-PASS Empty usages: generateKey({length: 192, name: AES-CBC}, true, []) >-PASS Empty usages: generateKey({length: 256, name: AES-CBC}, false, []) >-PASS Empty usages: generateKey({length: 256, name: AES-CBC}, true, []) >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_AES-CBC.https.html b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_AES-CBC.https.html >deleted file mode 100644 >index 7650908c09a157eb907ea1169c3a76e232229f2c..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_AES-CBC.https.html >+++ /dev/null >@@ -1,18 +0,0 @@ >-<!DOCTYPE html> >-<meta charset=utf-8> >-<meta name="timeout" content="long"> >-<title>WebCryptoAPI: generateKey() for Failures</title> >-<link rel="author" title="Charles Engelke" href="mailto:w3c@engelke.com"> >-<link rel="help" href="https://www.w3.org/TR/WebCryptoAPI/#dfn-SubtleCrypto-method-generateKey"> >-<script src="/resources/testharness.js"></script> >-<script src="/resources/testharnessreport.js"></script> >- >-<script src="/WebCryptoAPI/util/helpers.js"></script> >-<script src="failures.js"></script> >- >-<h1>generateKey Tests for Bad Parameters</h1> >- >-<div id="log"></div> >-<script> >-run_test(["AES-CBC"]); >-</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_AES-CTR-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_AES-CTR-expected.txt >deleted file mode 100644 >index 9b2965260d65eff087d35876a19f79f0f7bba5e0..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_AES-CTR-expected.txt >+++ /dev/null >@@ -1,742 +0,0 @@ >-generateKey Tests for Bad Parameters >- >- >-PASS Bad algorithm: generateKey(AES, false, [decrypt]) >-PASS Bad algorithm: generateKey(AES, true, [decrypt]) >-PASS Bad algorithm: generateKey(AES, RED, [decrypt]) >-PASS Bad algorithm: generateKey(AES, 7, [decrypt]) >-PASS Bad algorithm: generateKey(AES, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey(AES, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey(AES, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey(AES, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey(AES, false, [sign]) >-PASS Bad algorithm: generateKey(AES, true, [sign]) >-PASS Bad algorithm: generateKey(AES, RED, [sign]) >-PASS Bad algorithm: generateKey(AES, 7, [sign]) >-PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey(AES, false, [deriveBits]) >-PASS Bad algorithm: generateKey(AES, true, [deriveBits]) >-PASS Bad algorithm: generateKey(AES, RED, [deriveBits]) >-PASS Bad algorithm: generateKey(AES, 7, [deriveBits]) >-PASS Bad algorithm: generateKey(AES, false, []) >-PASS Bad algorithm: generateKey(AES, true, []) >-PASS Bad algorithm: generateKey(AES, RED, []) >-PASS Bad algorithm: generateKey(AES, 7, []) >-PASS Bad algorithm: generateKey(AES, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey(AES, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey(AES, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey(AES, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, false, [decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, true, [decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, false, [sign]) >-PASS Bad algorithm: generateKey({name: AES}, true, [sign]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [sign]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [sign]) >-PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, false, []) >-PASS Bad algorithm: generateKey({name: AES}, true, []) >-PASS Bad algorithm: generateKey({name: AES}, RED, []) >-PASS Bad algorithm: generateKey({name: AES}, 7, []) >-PASS Bad algorithm: generateKey({name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, []) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, []) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, []) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, []) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, []) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, []) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, []) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, []) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [encrypt, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, encrypt, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, encrypt, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [decrypt, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, decrypt, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, decrypt, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [encrypt, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, encrypt, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, encrypt, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [decrypt, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, decrypt, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, decrypt, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [decrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, decrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, decrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [decrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, decrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, decrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [encrypt, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, encrypt, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, encrypt, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [decrypt, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, decrypt, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, decrypt, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [encrypt, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, encrypt, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, encrypt, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [decrypt, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, decrypt, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, decrypt, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [decrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, decrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, decrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [decrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, decrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, decrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [encrypt, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, encrypt, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, encrypt, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [decrypt, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, decrypt, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, decrypt, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [encrypt, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, encrypt, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, encrypt, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [decrypt, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, decrypt, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, decrypt, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [decrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, decrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, decrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [decrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, decrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, decrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [decrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [decrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, []) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, []) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [decrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [decrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, []) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, []) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [decrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [decrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, []) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, []) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [decrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [decrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, []) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, []) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [decrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [decrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, []) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, []) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [decrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [decrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, []) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, []) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Empty usages: generateKey({length: 128, name: AES-CTR}, false, []) >-PASS Empty usages: generateKey({length: 128, name: AES-CTR}, true, []) >-PASS Empty usages: generateKey({length: 192, name: AES-CTR}, false, []) >-PASS Empty usages: generateKey({length: 192, name: AES-CTR}, true, []) >-PASS Empty usages: generateKey({length: 256, name: AES-CTR}, false, []) >-PASS Empty usages: generateKey({length: 256, name: AES-CTR}, true, []) >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_AES-CTR.https-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_AES-CTR.https-expected.txt >deleted file mode 100644 >index 9b2965260d65eff087d35876a19f79f0f7bba5e0..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_AES-CTR.https-expected.txt >+++ /dev/null >@@ -1,742 +0,0 @@ >-generateKey Tests for Bad Parameters >- >- >-PASS Bad algorithm: generateKey(AES, false, [decrypt]) >-PASS Bad algorithm: generateKey(AES, true, [decrypt]) >-PASS Bad algorithm: generateKey(AES, RED, [decrypt]) >-PASS Bad algorithm: generateKey(AES, 7, [decrypt]) >-PASS Bad algorithm: generateKey(AES, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey(AES, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey(AES, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey(AES, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey(AES, false, [sign]) >-PASS Bad algorithm: generateKey(AES, true, [sign]) >-PASS Bad algorithm: generateKey(AES, RED, [sign]) >-PASS Bad algorithm: generateKey(AES, 7, [sign]) >-PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey(AES, false, [deriveBits]) >-PASS Bad algorithm: generateKey(AES, true, [deriveBits]) >-PASS Bad algorithm: generateKey(AES, RED, [deriveBits]) >-PASS Bad algorithm: generateKey(AES, 7, [deriveBits]) >-PASS Bad algorithm: generateKey(AES, false, []) >-PASS Bad algorithm: generateKey(AES, true, []) >-PASS Bad algorithm: generateKey(AES, RED, []) >-PASS Bad algorithm: generateKey(AES, 7, []) >-PASS Bad algorithm: generateKey(AES, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey(AES, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey(AES, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey(AES, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, false, [decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, true, [decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, false, [sign]) >-PASS Bad algorithm: generateKey({name: AES}, true, [sign]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [sign]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [sign]) >-PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, false, []) >-PASS Bad algorithm: generateKey({name: AES}, true, []) >-PASS Bad algorithm: generateKey({name: AES}, RED, []) >-PASS Bad algorithm: generateKey({name: AES}, 7, []) >-PASS Bad algorithm: generateKey({name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, []) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, []) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, []) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, []) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, []) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, []) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, []) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, []) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [encrypt, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, encrypt, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, encrypt, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [decrypt, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, decrypt, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, decrypt, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [encrypt, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, encrypt, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, encrypt, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [decrypt, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, decrypt, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, decrypt, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [decrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, decrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, decrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [decrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, decrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, decrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [encrypt, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, encrypt, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, encrypt, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [decrypt, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, decrypt, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, decrypt, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [encrypt, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, encrypt, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, encrypt, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [decrypt, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, decrypt, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, decrypt, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [decrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, decrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, decrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [decrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, decrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, decrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [encrypt, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, encrypt, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, encrypt, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [decrypt, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, decrypt, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, decrypt, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [encrypt, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, encrypt, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, encrypt, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [decrypt, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, decrypt, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, decrypt, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [decrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, decrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, decrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [decrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, decrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, decrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [decrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [decrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, []) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, []) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [decrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [decrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, []) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, []) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [decrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [decrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, []) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, []) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [decrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [decrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, []) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, []) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [decrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [decrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, []) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, []) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [decrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [decrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, []) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, []) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Empty usages: generateKey({length: 128, name: AES-CTR}, false, []) >-PASS Empty usages: generateKey({length: 128, name: AES-CTR}, true, []) >-PASS Empty usages: generateKey({length: 192, name: AES-CTR}, false, []) >-PASS Empty usages: generateKey({length: 192, name: AES-CTR}, true, []) >-PASS Empty usages: generateKey({length: 256, name: AES-CTR}, false, []) >-PASS Empty usages: generateKey({length: 256, name: AES-CTR}, true, []) >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_AES-CTR.https.html b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_AES-CTR.https.html >deleted file mode 100644 >index f08737c390a414f465e0e6cd715da9773c5fb233..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_AES-CTR.https.html >+++ /dev/null >@@ -1,18 +0,0 @@ >-<!DOCTYPE html> >-<meta charset=utf-8> >-<meta name="timeout" content="long"> >-<title>WebCryptoAPI: generateKey() for Failures</title> >-<link rel="author" title="Charles Engelke" href="mailto:w3c@engelke.com"> >-<link rel="help" href="https://www.w3.org/TR/WebCryptoAPI/#dfn-SubtleCrypto-method-generateKey"> >-<script src="/resources/testharness.js"></script> >-<script src="/resources/testharnessreport.js"></script> >- >-<script src="/WebCryptoAPI/util/helpers.js"></script> >-<script src="failures.js"></script> >- >-<h1>generateKey Tests for Bad Parameters</h1> >- >-<div id="log"></div> >-<script> >-run_test(["AES-CTR"]); >-</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_AES-GCM-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_AES-GCM-expected.txt >deleted file mode 100644 >index 9afa5c3747de79559ed7f032671c153b8edc9836..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_AES-GCM-expected.txt >+++ /dev/null >@@ -1,742 +0,0 @@ >-generateKey Tests for Bad Parameters >- >- >-PASS Bad algorithm: generateKey(AES, false, [decrypt]) >-PASS Bad algorithm: generateKey(AES, true, [decrypt]) >-PASS Bad algorithm: generateKey(AES, RED, [decrypt]) >-PASS Bad algorithm: generateKey(AES, 7, [decrypt]) >-PASS Bad algorithm: generateKey(AES, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey(AES, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey(AES, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey(AES, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey(AES, false, [sign]) >-PASS Bad algorithm: generateKey(AES, true, [sign]) >-PASS Bad algorithm: generateKey(AES, RED, [sign]) >-PASS Bad algorithm: generateKey(AES, 7, [sign]) >-PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey(AES, false, [deriveBits]) >-PASS Bad algorithm: generateKey(AES, true, [deriveBits]) >-PASS Bad algorithm: generateKey(AES, RED, [deriveBits]) >-PASS Bad algorithm: generateKey(AES, 7, [deriveBits]) >-PASS Bad algorithm: generateKey(AES, false, []) >-PASS Bad algorithm: generateKey(AES, true, []) >-PASS Bad algorithm: generateKey(AES, RED, []) >-PASS Bad algorithm: generateKey(AES, 7, []) >-PASS Bad algorithm: generateKey(AES, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey(AES, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey(AES, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey(AES, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, false, [decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, true, [decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, false, [sign]) >-PASS Bad algorithm: generateKey({name: AES}, true, [sign]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [sign]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [sign]) >-PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, false, []) >-PASS Bad algorithm: generateKey({name: AES}, true, []) >-PASS Bad algorithm: generateKey({name: AES}, RED, []) >-PASS Bad algorithm: generateKey({name: AES}, 7, []) >-PASS Bad algorithm: generateKey({name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, []) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, []) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, []) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, []) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, []) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, []) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, []) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, []) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [encrypt, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, encrypt, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, encrypt, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [decrypt, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, decrypt, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, decrypt, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [encrypt, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, encrypt, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, encrypt, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [decrypt, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, decrypt, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, decrypt, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [decrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, decrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, decrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [decrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, decrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, decrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [encrypt, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, encrypt, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, encrypt, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [decrypt, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, decrypt, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, decrypt, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [encrypt, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, encrypt, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, encrypt, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [decrypt, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, decrypt, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, decrypt, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [decrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, decrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, decrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [decrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, decrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, decrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [encrypt, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, encrypt, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, encrypt, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [decrypt, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, decrypt, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, decrypt, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [encrypt, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, encrypt, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, encrypt, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [decrypt, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, decrypt, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, decrypt, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [decrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, decrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, decrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [decrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, decrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, decrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [decrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [decrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, []) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, []) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [decrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [decrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, []) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, []) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [decrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [decrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, []) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, []) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [decrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [decrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, []) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, []) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [decrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [decrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, []) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, []) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [decrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [decrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, []) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, []) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Empty usages: generateKey({length: 128, name: AES-GCM}, false, []) >-PASS Empty usages: generateKey({length: 128, name: AES-GCM}, true, []) >-PASS Empty usages: generateKey({length: 192, name: AES-GCM}, false, []) >-PASS Empty usages: generateKey({length: 192, name: AES-GCM}, true, []) >-PASS Empty usages: generateKey({length: 256, name: AES-GCM}, false, []) >-PASS Empty usages: generateKey({length: 256, name: AES-GCM}, true, []) >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_AES-GCM.https-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_AES-GCM.https-expected.txt >deleted file mode 100644 >index 9afa5c3747de79559ed7f032671c153b8edc9836..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_AES-GCM.https-expected.txt >+++ /dev/null >@@ -1,742 +0,0 @@ >-generateKey Tests for Bad Parameters >- >- >-PASS Bad algorithm: generateKey(AES, false, [decrypt]) >-PASS Bad algorithm: generateKey(AES, true, [decrypt]) >-PASS Bad algorithm: generateKey(AES, RED, [decrypt]) >-PASS Bad algorithm: generateKey(AES, 7, [decrypt]) >-PASS Bad algorithm: generateKey(AES, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey(AES, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey(AES, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey(AES, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey(AES, false, [sign]) >-PASS Bad algorithm: generateKey(AES, true, [sign]) >-PASS Bad algorithm: generateKey(AES, RED, [sign]) >-PASS Bad algorithm: generateKey(AES, 7, [sign]) >-PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey(AES, false, [deriveBits]) >-PASS Bad algorithm: generateKey(AES, true, [deriveBits]) >-PASS Bad algorithm: generateKey(AES, RED, [deriveBits]) >-PASS Bad algorithm: generateKey(AES, 7, [deriveBits]) >-PASS Bad algorithm: generateKey(AES, false, []) >-PASS Bad algorithm: generateKey(AES, true, []) >-PASS Bad algorithm: generateKey(AES, RED, []) >-PASS Bad algorithm: generateKey(AES, 7, []) >-PASS Bad algorithm: generateKey(AES, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey(AES, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey(AES, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey(AES, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, false, [decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, true, [decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, false, [sign]) >-PASS Bad algorithm: generateKey({name: AES}, true, [sign]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [sign]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [sign]) >-PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, false, []) >-PASS Bad algorithm: generateKey({name: AES}, true, []) >-PASS Bad algorithm: generateKey({name: AES}, RED, []) >-PASS Bad algorithm: generateKey({name: AES}, 7, []) >-PASS Bad algorithm: generateKey({name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, []) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, []) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, []) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, []) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, []) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, []) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, []) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, []) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [encrypt, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, encrypt, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, encrypt, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [decrypt, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, decrypt, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, decrypt, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [encrypt, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, encrypt, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, encrypt, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [decrypt, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, decrypt, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, decrypt, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [decrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, decrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, decrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [decrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, decrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, decrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [encrypt, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, encrypt, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, encrypt, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [decrypt, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, decrypt, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, decrypt, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [encrypt, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, encrypt, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, encrypt, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [decrypt, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, decrypt, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, decrypt, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [decrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, decrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, decrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [decrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, decrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, decrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [encrypt, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, encrypt, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, encrypt, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [decrypt, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, decrypt, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, decrypt, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [encrypt, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, encrypt, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, encrypt, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [decrypt, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, decrypt, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, decrypt, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, encrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [decrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, decrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, decrypt, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, encrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [decrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, decrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, decrypt, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [decrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [decrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, []) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, []) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [decrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [decrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, []) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, []) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [decrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [decrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, []) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, []) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [decrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [decrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, []) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, []) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [decrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [decrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, []) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, []) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [decrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [decrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, []) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, []) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Empty usages: generateKey({length: 128, name: AES-GCM}, false, []) >-PASS Empty usages: generateKey({length: 128, name: AES-GCM}, true, []) >-PASS Empty usages: generateKey({length: 192, name: AES-GCM}, false, []) >-PASS Empty usages: generateKey({length: 192, name: AES-GCM}, true, []) >-PASS Empty usages: generateKey({length: 256, name: AES-GCM}, false, []) >-PASS Empty usages: generateKey({length: 256, name: AES-GCM}, true, []) >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_AES-GCM.https.html b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_AES-GCM.https.html >deleted file mode 100644 >index 4ef6a7771025b0be26f37b9ffcbc88e1146e51f9..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_AES-GCM.https.html >+++ /dev/null >@@ -1,18 +0,0 @@ >-<!DOCTYPE html> >-<meta charset=utf-8> >-<meta name="timeout" content="long"> >-<title>WebCryptoAPI: generateKey() for Failures</title> >-<link rel="author" title="Charles Engelke" href="mailto:w3c@engelke.com"> >-<link rel="help" href="https://www.w3.org/TR/WebCryptoAPI/#dfn-SubtleCrypto-method-generateKey"> >-<script src="/resources/testharness.js"></script> >-<script src="/resources/testharnessreport.js"></script> >- >-<script src="/WebCryptoAPI/util/helpers.js"></script> >-<script src="failures.js"></script> >- >-<h1>generateKey Tests for Bad Parameters</h1> >- >-<div id="log"></div> >-<script> >-run_test(["AES-GCM"]); >-</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_AES-KW-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_AES-KW-expected.txt >deleted file mode 100644 >index 1aac369c2d1dc7223940f4f986e7e58af4507fa9..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_AES-KW-expected.txt >+++ /dev/null >@@ -1,484 +0,0 @@ >-generateKey Tests for Bad Parameters >- >- >-PASS Bad algorithm: generateKey(AES, false, [decrypt]) >-PASS Bad algorithm: generateKey(AES, true, [decrypt]) >-PASS Bad algorithm: generateKey(AES, RED, [decrypt]) >-PASS Bad algorithm: generateKey(AES, 7, [decrypt]) >-PASS Bad algorithm: generateKey(AES, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey(AES, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey(AES, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey(AES, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey(AES, false, [sign]) >-PASS Bad algorithm: generateKey(AES, true, [sign]) >-PASS Bad algorithm: generateKey(AES, RED, [sign]) >-PASS Bad algorithm: generateKey(AES, 7, [sign]) >-PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey(AES, false, [deriveBits]) >-PASS Bad algorithm: generateKey(AES, true, [deriveBits]) >-PASS Bad algorithm: generateKey(AES, RED, [deriveBits]) >-PASS Bad algorithm: generateKey(AES, 7, [deriveBits]) >-PASS Bad algorithm: generateKey(AES, false, []) >-PASS Bad algorithm: generateKey(AES, true, []) >-PASS Bad algorithm: generateKey(AES, RED, []) >-PASS Bad algorithm: generateKey(AES, 7, []) >-PASS Bad algorithm: generateKey(AES, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey(AES, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey(AES, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey(AES, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, false, [decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, true, [decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, false, [sign]) >-PASS Bad algorithm: generateKey({name: AES}, true, [sign]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [sign]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [sign]) >-PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, false, []) >-PASS Bad algorithm: generateKey({name: AES}, true, []) >-PASS Bad algorithm: generateKey({name: AES}, RED, []) >-PASS Bad algorithm: generateKey({name: AES}, 7, []) >-PASS Bad algorithm: generateKey({name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, []) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, []) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, []) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, []) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, []) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, []) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, []) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, []) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [encrypt]) >-PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, encrypt]) >-PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, encrypt]) >-PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, encrypt]) >-PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [decrypt]) >-PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, decrypt]) >-PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, decrypt]) >-PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, decrypt]) >-PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, wrapKey, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, wrapKey, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, wrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, wrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [encrypt]) >-PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, encrypt]) >-PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, encrypt]) >-PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, encrypt]) >-PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [decrypt]) >-PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, decrypt]) >-PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, decrypt]) >-PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, decrypt]) >-PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, wrapKey, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, wrapKey, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, wrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, wrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [encrypt]) >-PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, encrypt]) >-PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, encrypt]) >-PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, encrypt]) >-PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [decrypt]) >-PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, decrypt]) >-PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, decrypt]) >-PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, decrypt]) >-PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, wrapKey, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, wrapKey, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, wrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, wrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, deriveBits]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-KW}, false, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-KW}, true, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-KW}, false, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-KW}, true, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-KW}, false, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-KW}, true, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-KW}, false, []) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-KW}, true, []) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-KW}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-KW}, false, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-KW}, true, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-KW}, false, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-KW}, true, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-KW}, false, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-KW}, true, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-KW}, false, []) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-KW}, true, []) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-KW}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-KW}, false, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-KW}, true, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-KW}, false, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-KW}, true, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-KW}, false, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-KW}, true, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-KW}, false, []) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-KW}, true, []) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-KW}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-KW}, false, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-KW}, true, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-KW}, false, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-KW}, true, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-KW}, false, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-KW}, true, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-KW}, false, []) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-KW}, true, []) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-KW}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-KW}, false, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-KW}, true, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-KW}, false, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-KW}, true, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-KW}, false, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-KW}, true, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-KW}, false, []) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-KW}, true, []) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-KW}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-KW}, false, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-KW}, true, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-KW}, false, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-KW}, true, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-KW}, false, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-KW}, true, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-KW}, false, []) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-KW}, true, []) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-KW}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) >-PASS Empty usages: generateKey({length: 128, name: AES-KW}, false, []) >-PASS Empty usages: generateKey({length: 128, name: AES-KW}, true, []) >-PASS Empty usages: generateKey({length: 192, name: AES-KW}, false, []) >-PASS Empty usages: generateKey({length: 192, name: AES-KW}, true, []) >-PASS Empty usages: generateKey({length: 256, name: AES-KW}, false, []) >-PASS Empty usages: generateKey({length: 256, name: AES-KW}, true, []) >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_AES-KW.https-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_AES-KW.https-expected.txt >deleted file mode 100644 >index 1aac369c2d1dc7223940f4f986e7e58af4507fa9..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_AES-KW.https-expected.txt >+++ /dev/null >@@ -1,484 +0,0 @@ >-generateKey Tests for Bad Parameters >- >- >-PASS Bad algorithm: generateKey(AES, false, [decrypt]) >-PASS Bad algorithm: generateKey(AES, true, [decrypt]) >-PASS Bad algorithm: generateKey(AES, RED, [decrypt]) >-PASS Bad algorithm: generateKey(AES, 7, [decrypt]) >-PASS Bad algorithm: generateKey(AES, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey(AES, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey(AES, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey(AES, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey(AES, false, [sign]) >-PASS Bad algorithm: generateKey(AES, true, [sign]) >-PASS Bad algorithm: generateKey(AES, RED, [sign]) >-PASS Bad algorithm: generateKey(AES, 7, [sign]) >-PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey(AES, false, [deriveBits]) >-PASS Bad algorithm: generateKey(AES, true, [deriveBits]) >-PASS Bad algorithm: generateKey(AES, RED, [deriveBits]) >-PASS Bad algorithm: generateKey(AES, 7, [deriveBits]) >-PASS Bad algorithm: generateKey(AES, false, []) >-PASS Bad algorithm: generateKey(AES, true, []) >-PASS Bad algorithm: generateKey(AES, RED, []) >-PASS Bad algorithm: generateKey(AES, 7, []) >-PASS Bad algorithm: generateKey(AES, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey(AES, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey(AES, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey(AES, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, false, [decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, true, [decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, false, [sign]) >-PASS Bad algorithm: generateKey({name: AES}, true, [sign]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [sign]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [sign]) >-PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, false, []) >-PASS Bad algorithm: generateKey({name: AES}, true, []) >-PASS Bad algorithm: generateKey({name: AES}, RED, []) >-PASS Bad algorithm: generateKey({name: AES}, 7, []) >-PASS Bad algorithm: generateKey({name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, []) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, []) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, []) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, []) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, []) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, []) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, []) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, []) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [encrypt]) >-PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, encrypt]) >-PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, encrypt]) >-PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, encrypt]) >-PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [decrypt]) >-PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, decrypt]) >-PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, decrypt]) >-PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, decrypt]) >-PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, wrapKey, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, sign]) >-PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, wrapKey, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, verify]) >-PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, wrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, wrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [encrypt]) >-PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, encrypt]) >-PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, encrypt]) >-PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, encrypt]) >-PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [decrypt]) >-PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, decrypt]) >-PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, decrypt]) >-PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, decrypt]) >-PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, wrapKey, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, sign]) >-PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, wrapKey, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, verify]) >-PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, wrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, wrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [encrypt]) >-PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, encrypt]) >-PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, encrypt]) >-PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, encrypt]) >-PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [decrypt]) >-PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, decrypt]) >-PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, decrypt]) >-PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, decrypt]) >-PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, wrapKey, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, sign]) >-PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, wrapKey, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, verify]) >-PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, wrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, deriveKey]) >-PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, wrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, deriveBits]) >-PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, deriveBits]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-KW}, false, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-KW}, true, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-KW}, false, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-KW}, true, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-KW}, false, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-KW}, true, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-KW}, false, []) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-KW}, true, []) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-KW}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 64, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-KW}, false, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-KW}, true, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-KW}, false, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-KW}, true, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-KW}, false, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-KW}, true, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-KW}, false, []) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-KW}, true, []) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-KW}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 127, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-KW}, false, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-KW}, true, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-KW}, false, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-KW}, true, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-KW}, false, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-KW}, true, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-KW}, false, []) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-KW}, true, []) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-KW}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 129, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-KW}, false, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-KW}, true, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-KW}, false, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-KW}, true, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-KW}, false, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-KW}, true, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-KW}, false, []) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-KW}, true, []) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-KW}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 255, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-KW}, false, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-KW}, true, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-KW}, false, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-KW}, true, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-KW}, false, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-KW}, true, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-KW}, false, []) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-KW}, true, []) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-KW}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 257, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-KW}, false, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-KW}, true, [wrapKey]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-KW}, false, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-KW}, true, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-KW}, false, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-KW}, true, [unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-KW}, false, []) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-KW}, true, []) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-KW}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({length: 512, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) >-PASS Empty usages: generateKey({length: 128, name: AES-KW}, false, []) >-PASS Empty usages: generateKey({length: 128, name: AES-KW}, true, []) >-PASS Empty usages: generateKey({length: 192, name: AES-KW}, false, []) >-PASS Empty usages: generateKey({length: 192, name: AES-KW}, true, []) >-PASS Empty usages: generateKey({length: 256, name: AES-KW}, false, []) >-PASS Empty usages: generateKey({length: 256, name: AES-KW}, true, []) >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_AES-KW.https.html b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_AES-KW.https.html >deleted file mode 100644 >index 7cbb4f8bf036455a88ef1fe31dbfddfc17ae1bf5..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_AES-KW.https.html >+++ /dev/null >@@ -1,18 +0,0 @@ >-<!DOCTYPE html> >-<meta charset=utf-8> >-<meta name="timeout" content="long"> >-<title>WebCryptoAPI: generateKey() for Failures</title> >-<link rel="author" title="Charles Engelke" href="mailto:w3c@engelke.com"> >-<link rel="help" href="https://www.w3.org/TR/WebCryptoAPI/#dfn-SubtleCrypto-method-generateKey"> >-<script src="/resources/testharness.js"></script> >-<script src="/resources/testharnessreport.js"></script> >- >-<script src="/WebCryptoAPI/util/helpers.js"></script> >-<script src="failures.js"></script> >- >-<h1>generateKey Tests for Bad Parameters</h1> >- >-<div id="log"></div> >-<script> >-run_test(["AES-KW"]); >-</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_ECDH.https-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_ECDH.https-expected.txt >deleted file mode 100644 >index 2ec0423b8ed4ffc0fb3af81fd22a83533c9bacb5..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_ECDH.https-expected.txt >+++ /dev/null >@@ -1,444 +0,0 @@ >-generateKey Tests for Bad Parameters >- >- >-PASS Bad algorithm: generateKey(AES, false, [decrypt]) >-PASS Bad algorithm: generateKey(AES, true, [decrypt]) >-PASS Bad algorithm: generateKey(AES, RED, [decrypt]) >-PASS Bad algorithm: generateKey(AES, 7, [decrypt]) >-PASS Bad algorithm: generateKey(AES, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey(AES, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey(AES, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey(AES, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey(AES, false, [sign]) >-PASS Bad algorithm: generateKey(AES, true, [sign]) >-PASS Bad algorithm: generateKey(AES, RED, [sign]) >-PASS Bad algorithm: generateKey(AES, 7, [sign]) >-PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey(AES, false, [deriveBits]) >-PASS Bad algorithm: generateKey(AES, true, [deriveBits]) >-PASS Bad algorithm: generateKey(AES, RED, [deriveBits]) >-PASS Bad algorithm: generateKey(AES, 7, [deriveBits]) >-PASS Bad algorithm: generateKey(AES, false, []) >-PASS Bad algorithm: generateKey(AES, true, []) >-PASS Bad algorithm: generateKey(AES, RED, []) >-PASS Bad algorithm: generateKey(AES, 7, []) >-PASS Bad algorithm: generateKey(AES, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey(AES, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey(AES, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey(AES, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, false, [decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, true, [decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, false, [sign]) >-PASS Bad algorithm: generateKey({name: AES}, true, [sign]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [sign]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [sign]) >-PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, false, []) >-PASS Bad algorithm: generateKey({name: AES}, true, []) >-PASS Bad algorithm: generateKey({name: AES}, RED, []) >-PASS Bad algorithm: generateKey({name: AES}, 7, []) >-PASS Bad algorithm: generateKey({name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, []) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, []) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, []) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, []) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, []) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, []) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, []) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, []) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [encrypt]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, encrypt]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, deriveKey, encrypt]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, encrypt]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, encrypt]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [decrypt]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, decrypt]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, deriveKey, decrypt]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, decrypt]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, decrypt]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [sign]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, sign]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, deriveKey, sign]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, sign]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, sign]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [verify]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, verify]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, deriveKey, verify]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, verify]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, verify]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [wrapKey]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, wrapKey]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, deriveKey, wrapKey]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, wrapKey]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, wrapKey]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [unwrapKey]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, unwrapKey]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, deriveKey, unwrapKey]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, unwrapKey]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, unwrapKey]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [encrypt]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, encrypt]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, deriveKey, encrypt]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, encrypt]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, encrypt]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [decrypt]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, decrypt]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, deriveKey, decrypt]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, decrypt]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, decrypt]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [sign]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, sign]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, deriveKey, sign]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, sign]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, sign]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [verify]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, verify]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, deriveKey, verify]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, verify]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, verify]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [wrapKey]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, wrapKey]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, deriveKey, wrapKey]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, wrapKey]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, wrapKey]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [unwrapKey]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, unwrapKey]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, deriveKey, unwrapKey]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, unwrapKey]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, unwrapKey]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [encrypt]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, encrypt]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, deriveKey, encrypt]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, encrypt]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, encrypt]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [decrypt]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, decrypt]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, deriveKey, decrypt]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, decrypt]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, decrypt]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [sign]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, sign]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, deriveKey, sign]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, sign]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, sign]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [verify]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, verify]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, deriveKey, verify]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, verify]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, verify]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [wrapKey]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, wrapKey]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, deriveKey, wrapKey]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, wrapKey]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, wrapKey]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [unwrapKey]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, unwrapKey]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, deriveKey, unwrapKey]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, unwrapKey]) >-PASS Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, unwrapKey]) >-PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: P-512}, false, [deriveKey]) >-PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: P-512}, true, [deriveKey]) >-PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: P-512}, false, [deriveBits, deriveKey]) >-PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: P-512}, true, [deriveBits, deriveKey]) >-PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: P-512}, false, [deriveBits]) >-PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: P-512}, true, [deriveBits]) >-PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: P-512}, false, []) >-PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: P-512}, true, []) >-PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: P-512}, false, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) >-PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: P-512}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) >-PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: Curve25519}, false, [deriveKey]) >-PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: Curve25519}, true, [deriveKey]) >-PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: Curve25519}, false, [deriveBits, deriveKey]) >-PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: Curve25519}, true, [deriveBits, deriveKey]) >-PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: Curve25519}, false, [deriveBits]) >-PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: Curve25519}, true, [deriveBits]) >-PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: Curve25519}, false, []) >-PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: Curve25519}, true, []) >-PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: Curve25519}, false, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) >-PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: Curve25519}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) >-PASS Empty usages: generateKey({name: ECDH, namedCurve: P-256}, false, []) >-PASS Empty usages: generateKey({name: ECDH, namedCurve: P-256}, true, []) >-PASS Empty usages: generateKey({name: ECDH, namedCurve: P-384}, false, []) >-PASS Empty usages: generateKey({name: ECDH, namedCurve: P-384}, true, []) >-FAIL Empty usages: generateKey({name: ECDH, namedCurve: P-521}, false, []) assert_equals: Empty usages not supported expected "SyntaxError" but got "NotSupportedError" >-FAIL Empty usages: generateKey({name: ECDH, namedCurve: P-521}, true, []) assert_equals: Empty usages not supported expected "SyntaxError" but got "NotSupportedError" >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_ECDH.https.html b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_ECDH.https.html >deleted file mode 100644 >index c606a5b9041c146e760b8cd9f9ccd738f3f990af..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_ECDH.https.html >+++ /dev/null >@@ -1,18 +0,0 @@ >-<!DOCTYPE html> >-<meta charset=utf-8> >-<meta name="timeout" content="long"> >-<title>WebCryptoAPI: generateKey() for Failures</title> >-<link rel="author" title="Charles Engelke" href="mailto:w3c@engelke.com"> >-<link rel="help" href="https://www.w3.org/TR/WebCryptoAPI/#dfn-SubtleCrypto-method-generateKey"> >-<script src="/resources/testharness.js"></script> >-<script src="/resources/testharnessreport.js"></script> >- >-<script src="/WebCryptoAPI/util/helpers.js"></script> >-<script src="failures.js"></script> >- >-<h1>generateKey Tests for Bad Parameters</h1> >- >-<div id="log"></div> >-<script> >-run_test(["ECDH"]); >-</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_ECDSA-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_ECDSA-expected.txt >deleted file mode 100644 >index 02ae363500d54aa52db17f9d78915037aa5cd26b..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_ECDSA-expected.txt >+++ /dev/null >@@ -1,422 +0,0 @@ >-generateKey Tests for Bad Parameters >- >- >-PASS Bad algorithm: generateKey(AES, false, [decrypt]) >-PASS Bad algorithm: generateKey(AES, true, [decrypt]) >-PASS Bad algorithm: generateKey(AES, RED, [decrypt]) >-PASS Bad algorithm: generateKey(AES, 7, [decrypt]) >-PASS Bad algorithm: generateKey(AES, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey(AES, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey(AES, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey(AES, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey(AES, false, [sign]) >-PASS Bad algorithm: generateKey(AES, true, [sign]) >-PASS Bad algorithm: generateKey(AES, RED, [sign]) >-PASS Bad algorithm: generateKey(AES, 7, [sign]) >-PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey(AES, false, [deriveBits]) >-PASS Bad algorithm: generateKey(AES, true, [deriveBits]) >-PASS Bad algorithm: generateKey(AES, RED, [deriveBits]) >-PASS Bad algorithm: generateKey(AES, 7, [deriveBits]) >-PASS Bad algorithm: generateKey(AES, false, []) >-PASS Bad algorithm: generateKey(AES, true, []) >-PASS Bad algorithm: generateKey(AES, RED, []) >-PASS Bad algorithm: generateKey(AES, 7, []) >-PASS Bad algorithm: generateKey(AES, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey(AES, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey(AES, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey(AES, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, false, [decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, true, [decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, false, [sign]) >-PASS Bad algorithm: generateKey({name: AES}, true, [sign]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [sign]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [sign]) >-PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, false, []) >-PASS Bad algorithm: generateKey({name: AES}, true, []) >-PASS Bad algorithm: generateKey({name: AES}, RED, []) >-PASS Bad algorithm: generateKey({name: AES}, 7, []) >-PASS Bad algorithm: generateKey({name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, []) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, []) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, []) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, []) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, []) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, []) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, []) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, []) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [encrypt]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, encrypt]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [verify, sign, encrypt]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, verify, sign, sign, verify, encrypt]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [decrypt]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, decrypt]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [verify, sign, decrypt]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, verify, sign, sign, verify, decrypt]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [wrapKey]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, wrapKey]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [verify, sign, wrapKey]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, verify, sign, sign, verify, wrapKey]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [unwrapKey]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, unwrapKey]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [verify, sign, unwrapKey]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, verify, sign, sign, verify, unwrapKey]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [deriveKey]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, deriveKey]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [verify, sign, deriveKey]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, verify, sign, sign, verify, deriveKey]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [deriveBits]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, deriveBits]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [verify, sign, deriveBits]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, verify, sign, sign, verify, deriveBits]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [encrypt]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, encrypt]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [verify, sign, encrypt]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, verify, sign, sign, verify, encrypt]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [decrypt]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, decrypt]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [verify, sign, decrypt]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, verify, sign, sign, verify, decrypt]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [wrapKey]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, wrapKey]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [verify, sign, wrapKey]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, verify, sign, sign, verify, wrapKey]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [unwrapKey]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, unwrapKey]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [verify, sign, unwrapKey]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, verify, sign, sign, verify, unwrapKey]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [deriveKey]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, deriveKey]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [verify, sign, deriveKey]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, verify, sign, sign, verify, deriveKey]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [deriveBits]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, deriveBits]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [verify, sign, deriveBits]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, verify, sign, sign, verify, deriveBits]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [encrypt]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, encrypt]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [verify, sign, encrypt]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, verify, sign, sign, verify, encrypt]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [decrypt]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, decrypt]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [verify, sign, decrypt]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, verify, sign, sign, verify, decrypt]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [wrapKey]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, wrapKey]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [verify, sign, wrapKey]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, verify, sign, sign, verify, wrapKey]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [unwrapKey]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, unwrapKey]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [verify, sign, unwrapKey]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, verify, sign, sign, verify, unwrapKey]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [deriveKey]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, deriveKey]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [verify, sign, deriveKey]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, verify, sign, sign, verify, deriveKey]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [deriveBits]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, deriveBits]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [verify, sign, deriveBits]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, verify, sign, sign, verify, deriveBits]) >-PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: P-512}, false, [sign]) >-PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: P-512}, true, [sign]) >-PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: P-512}, false, [verify, sign]) >-PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: P-512}, true, [verify, sign]) >-PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: P-512}, false, []) >-PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: P-512}, true, []) >-PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: P-512}, false, [sign, verify, sign, sign, verify]) >-PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: P-512}, true, [sign, verify, sign, sign, verify]) >-PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: Curve25519}, false, [sign]) >-PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: Curve25519}, true, [sign]) >-PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: Curve25519}, false, [verify, sign]) >-PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: Curve25519}, true, [verify, sign]) >-PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: Curve25519}, false, []) >-PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: Curve25519}, true, []) >-PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: Curve25519}, false, [sign, verify, sign, sign, verify]) >-PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: Curve25519}, true, [sign, verify, sign, sign, verify]) >-PASS Empty usages: generateKey({name: ECDSA, namedCurve: P-256}, false, []) >-PASS Empty usages: generateKey({name: ECDSA, namedCurve: P-256}, true, []) >-PASS Empty usages: generateKey({name: ECDSA, namedCurve: P-384}, false, []) >-PASS Empty usages: generateKey({name: ECDSA, namedCurve: P-384}, true, []) >-FAIL Empty usages: generateKey({name: ECDSA, namedCurve: P-521}, false, []) assert_equals: Empty usages not supported expected "SyntaxError" but got "NotSupportedError" >-FAIL Empty usages: generateKey({name: ECDSA, namedCurve: P-521}, true, []) assert_equals: Empty usages not supported expected "SyntaxError" but got "NotSupportedError" >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_ECDSA.https-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_ECDSA.https-expected.txt >deleted file mode 100644 >index 02ae363500d54aa52db17f9d78915037aa5cd26b..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_ECDSA.https-expected.txt >+++ /dev/null >@@ -1,422 +0,0 @@ >-generateKey Tests for Bad Parameters >- >- >-PASS Bad algorithm: generateKey(AES, false, [decrypt]) >-PASS Bad algorithm: generateKey(AES, true, [decrypt]) >-PASS Bad algorithm: generateKey(AES, RED, [decrypt]) >-PASS Bad algorithm: generateKey(AES, 7, [decrypt]) >-PASS Bad algorithm: generateKey(AES, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey(AES, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey(AES, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey(AES, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey(AES, false, [sign]) >-PASS Bad algorithm: generateKey(AES, true, [sign]) >-PASS Bad algorithm: generateKey(AES, RED, [sign]) >-PASS Bad algorithm: generateKey(AES, 7, [sign]) >-PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey(AES, false, [deriveBits]) >-PASS Bad algorithm: generateKey(AES, true, [deriveBits]) >-PASS Bad algorithm: generateKey(AES, RED, [deriveBits]) >-PASS Bad algorithm: generateKey(AES, 7, [deriveBits]) >-PASS Bad algorithm: generateKey(AES, false, []) >-PASS Bad algorithm: generateKey(AES, true, []) >-PASS Bad algorithm: generateKey(AES, RED, []) >-PASS Bad algorithm: generateKey(AES, 7, []) >-PASS Bad algorithm: generateKey(AES, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey(AES, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey(AES, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey(AES, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, false, [decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, true, [decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, false, [sign]) >-PASS Bad algorithm: generateKey({name: AES}, true, [sign]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [sign]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [sign]) >-PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, false, []) >-PASS Bad algorithm: generateKey({name: AES}, true, []) >-PASS Bad algorithm: generateKey({name: AES}, RED, []) >-PASS Bad algorithm: generateKey({name: AES}, 7, []) >-PASS Bad algorithm: generateKey({name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, []) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, []) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, []) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, []) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, []) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, []) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, []) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, []) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [encrypt]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, encrypt]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [verify, sign, encrypt]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, verify, sign, sign, verify, encrypt]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [decrypt]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, decrypt]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [verify, sign, decrypt]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, verify, sign, sign, verify, decrypt]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [wrapKey]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, wrapKey]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [verify, sign, wrapKey]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, verify, sign, sign, verify, wrapKey]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [unwrapKey]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, unwrapKey]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [verify, sign, unwrapKey]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, verify, sign, sign, verify, unwrapKey]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [deriveKey]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, deriveKey]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [verify, sign, deriveKey]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, verify, sign, sign, verify, deriveKey]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [deriveBits]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, deriveBits]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [verify, sign, deriveBits]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, verify, sign, sign, verify, deriveBits]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [encrypt]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, encrypt]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [verify, sign, encrypt]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, verify, sign, sign, verify, encrypt]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [decrypt]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, decrypt]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [verify, sign, decrypt]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, verify, sign, sign, verify, decrypt]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [wrapKey]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, wrapKey]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [verify, sign, wrapKey]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, verify, sign, sign, verify, wrapKey]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [unwrapKey]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, unwrapKey]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [verify, sign, unwrapKey]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, verify, sign, sign, verify, unwrapKey]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [deriveKey]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, deriveKey]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [verify, sign, deriveKey]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, verify, sign, sign, verify, deriveKey]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [deriveBits]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, deriveBits]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [verify, sign, deriveBits]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, verify, sign, sign, verify, deriveBits]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [encrypt]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, encrypt]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [verify, sign, encrypt]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, verify, sign, sign, verify, encrypt]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [decrypt]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, decrypt]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [verify, sign, decrypt]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, verify, sign, sign, verify, decrypt]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [wrapKey]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, wrapKey]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [verify, sign, wrapKey]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, verify, sign, sign, verify, wrapKey]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [unwrapKey]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, unwrapKey]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [verify, sign, unwrapKey]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, verify, sign, sign, verify, unwrapKey]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [deriveKey]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, deriveKey]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [verify, sign, deriveKey]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, verify, sign, sign, verify, deriveKey]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [deriveBits]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, deriveBits]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [verify, sign, deriveBits]) >-PASS Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, verify, sign, sign, verify, deriveBits]) >-PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: P-512}, false, [sign]) >-PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: P-512}, true, [sign]) >-PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: P-512}, false, [verify, sign]) >-PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: P-512}, true, [verify, sign]) >-PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: P-512}, false, []) >-PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: P-512}, true, []) >-PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: P-512}, false, [sign, verify, sign, sign, verify]) >-PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: P-512}, true, [sign, verify, sign, sign, verify]) >-PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: Curve25519}, false, [sign]) >-PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: Curve25519}, true, [sign]) >-PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: Curve25519}, false, [verify, sign]) >-PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: Curve25519}, true, [verify, sign]) >-PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: Curve25519}, false, []) >-PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: Curve25519}, true, []) >-PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: Curve25519}, false, [sign, verify, sign, sign, verify]) >-PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: Curve25519}, true, [sign, verify, sign, sign, verify]) >-PASS Empty usages: generateKey({name: ECDSA, namedCurve: P-256}, false, []) >-PASS Empty usages: generateKey({name: ECDSA, namedCurve: P-256}, true, []) >-PASS Empty usages: generateKey({name: ECDSA, namedCurve: P-384}, false, []) >-PASS Empty usages: generateKey({name: ECDSA, namedCurve: P-384}, true, []) >-FAIL Empty usages: generateKey({name: ECDSA, namedCurve: P-521}, false, []) assert_equals: Empty usages not supported expected "SyntaxError" but got "NotSupportedError" >-FAIL Empty usages: generateKey({name: ECDSA, namedCurve: P-521}, true, []) assert_equals: Empty usages not supported expected "SyntaxError" but got "NotSupportedError" >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_ECDSA.https.html b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_ECDSA.https.html >deleted file mode 100644 >index 8b742e80b1e1b709f6902552f6ac814ea1ff965f..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_ECDSA.https.html >+++ /dev/null >@@ -1,18 +0,0 @@ >-<!DOCTYPE html> >-<meta charset=utf-8> >-<meta name="timeout" content="long"> >-<title>WebCryptoAPI: generateKey() for Failures</title> >-<link rel="author" title="Charles Engelke" href="mailto:w3c@engelke.com"> >-<link rel="help" href="https://www.w3.org/TR/WebCryptoAPI/#dfn-SubtleCrypto-method-generateKey"> >-<script src="/resources/testharness.js"></script> >-<script src="/resources/testharnessreport.js"></script> >- >-<script src="/WebCryptoAPI/util/helpers.js"></script> >-<script src="failures.js"></script> >- >-<h1>generateKey Tests for Bad Parameters</h1> >- >-<div id="log"></div> >-<script> >-run_test(["ECDSA"]); >-</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_HMAC-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_HMAC-expected.txt >deleted file mode 100644 >index 9ad9d91d65950dd55f1a506c9d15fd64faab92be..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_HMAC-expected.txt >+++ /dev/null >@@ -1,456 +0,0 @@ >-generateKey Tests for Bad Parameters >- >- >-PASS Bad algorithm: generateKey(AES, false, [decrypt]) >-PASS Bad algorithm: generateKey(AES, true, [decrypt]) >-PASS Bad algorithm: generateKey(AES, RED, [decrypt]) >-PASS Bad algorithm: generateKey(AES, 7, [decrypt]) >-PASS Bad algorithm: generateKey(AES, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey(AES, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey(AES, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey(AES, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey(AES, false, [sign]) >-PASS Bad algorithm: generateKey(AES, true, [sign]) >-PASS Bad algorithm: generateKey(AES, RED, [sign]) >-PASS Bad algorithm: generateKey(AES, 7, [sign]) >-PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey(AES, false, [deriveBits]) >-PASS Bad algorithm: generateKey(AES, true, [deriveBits]) >-PASS Bad algorithm: generateKey(AES, RED, [deriveBits]) >-PASS Bad algorithm: generateKey(AES, 7, [deriveBits]) >-PASS Bad algorithm: generateKey(AES, false, []) >-PASS Bad algorithm: generateKey(AES, true, []) >-PASS Bad algorithm: generateKey(AES, RED, []) >-PASS Bad algorithm: generateKey(AES, 7, []) >-PASS Bad algorithm: generateKey(AES, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey(AES, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey(AES, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey(AES, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, false, [decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, true, [decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, false, [sign]) >-PASS Bad algorithm: generateKey({name: AES}, true, [sign]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [sign]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [sign]) >-PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, false, []) >-PASS Bad algorithm: generateKey({name: AES}, true, []) >-PASS Bad algorithm: generateKey({name: AES}, RED, []) >-PASS Bad algorithm: generateKey({name: AES}, 7, []) >-PASS Bad algorithm: generateKey({name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, []) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, []) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, []) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, []) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, []) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, []) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, []) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, []) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [encrypt]) >-PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, encrypt]) >-PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, sign, encrypt]) >-PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, encrypt]) >-PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, verify, sign, verify, encrypt]) >-PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [decrypt]) >-PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, decrypt]) >-PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, sign, decrypt]) >-PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, decrypt]) >-PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, verify, sign, verify, decrypt]) >-PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [wrapKey]) >-PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, wrapKey]) >-PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, sign, wrapKey]) >-PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, wrapKey]) >-PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, verify, sign, verify, wrapKey]) >-PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [unwrapKey]) >-PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, unwrapKey]) >-PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, sign, unwrapKey]) >-PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, unwrapKey]) >-PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, verify, sign, verify, unwrapKey]) >-PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, sign, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, verify, sign, verify, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, sign, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, verify, sign, verify, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [encrypt]) >-PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, encrypt]) >-PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, sign, encrypt]) >-PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, encrypt]) >-PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, verify, sign, verify, encrypt]) >-PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [decrypt]) >-PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, decrypt]) >-PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, sign, decrypt]) >-PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, decrypt]) >-PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, verify, sign, verify, decrypt]) >-PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [wrapKey]) >-PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, wrapKey]) >-PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, sign, wrapKey]) >-PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, wrapKey]) >-PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, verify, sign, verify, wrapKey]) >-PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [unwrapKey]) >-PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, unwrapKey]) >-PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, sign, unwrapKey]) >-PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, unwrapKey]) >-PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, verify, sign, verify, unwrapKey]) >-PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, sign, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, verify, sign, verify, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, sign, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, verify, sign, verify, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [encrypt]) >-PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, encrypt]) >-PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, sign, encrypt]) >-PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, encrypt]) >-PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, verify, sign, verify, encrypt]) >-PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [decrypt]) >-PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, decrypt]) >-PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, sign, decrypt]) >-PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, decrypt]) >-PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, verify, sign, verify, decrypt]) >-PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [wrapKey]) >-PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, wrapKey]) >-PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, sign, wrapKey]) >-PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, wrapKey]) >-PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, verify, sign, verify, wrapKey]) >-PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [unwrapKey]) >-PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, unwrapKey]) >-PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, sign, unwrapKey]) >-PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, unwrapKey]) >-PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, verify, sign, verify, unwrapKey]) >-PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, sign, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, verify, sign, verify, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, sign, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, verify, sign, verify, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [encrypt]) >-PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, encrypt]) >-PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, sign, encrypt]) >-PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, encrypt]) >-PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, verify, sign, verify, encrypt]) >-PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [decrypt]) >-PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, decrypt]) >-PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, sign, decrypt]) >-PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, decrypt]) >-PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, verify, sign, verify, decrypt]) >-PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [wrapKey]) >-PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, wrapKey]) >-PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, sign, wrapKey]) >-PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, wrapKey]) >-PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, verify, sign, verify, wrapKey]) >-PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [unwrapKey]) >-PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, unwrapKey]) >-PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, sign, unwrapKey]) >-PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, unwrapKey]) >-PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, verify, sign, verify, unwrapKey]) >-PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, sign, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, verify, sign, verify, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, sign, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, verify, sign, verify, deriveBits]) >-PASS Empty usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, false, []) >-PASS Empty usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, []) >-PASS Empty usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, false, []) >-PASS Empty usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, []) >-PASS Empty usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, false, []) >-PASS Empty usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, []) >-PASS Empty usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, false, []) >-PASS Empty usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, []) >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_HMAC.https-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_HMAC.https-expected.txt >deleted file mode 100644 >index 9ad9d91d65950dd55f1a506c9d15fd64faab92be..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_HMAC.https-expected.txt >+++ /dev/null >@@ -1,456 +0,0 @@ >-generateKey Tests for Bad Parameters >- >- >-PASS Bad algorithm: generateKey(AES, false, [decrypt]) >-PASS Bad algorithm: generateKey(AES, true, [decrypt]) >-PASS Bad algorithm: generateKey(AES, RED, [decrypt]) >-PASS Bad algorithm: generateKey(AES, 7, [decrypt]) >-PASS Bad algorithm: generateKey(AES, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey(AES, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey(AES, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey(AES, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey(AES, false, [sign]) >-PASS Bad algorithm: generateKey(AES, true, [sign]) >-PASS Bad algorithm: generateKey(AES, RED, [sign]) >-PASS Bad algorithm: generateKey(AES, 7, [sign]) >-PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey(AES, false, [deriveBits]) >-PASS Bad algorithm: generateKey(AES, true, [deriveBits]) >-PASS Bad algorithm: generateKey(AES, RED, [deriveBits]) >-PASS Bad algorithm: generateKey(AES, 7, [deriveBits]) >-PASS Bad algorithm: generateKey(AES, false, []) >-PASS Bad algorithm: generateKey(AES, true, []) >-PASS Bad algorithm: generateKey(AES, RED, []) >-PASS Bad algorithm: generateKey(AES, 7, []) >-PASS Bad algorithm: generateKey(AES, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey(AES, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey(AES, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey(AES, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, false, [decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, true, [decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, false, [sign]) >-PASS Bad algorithm: generateKey({name: AES}, true, [sign]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [sign]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [sign]) >-PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, false, []) >-PASS Bad algorithm: generateKey({name: AES}, true, []) >-PASS Bad algorithm: generateKey({name: AES}, RED, []) >-PASS Bad algorithm: generateKey({name: AES}, 7, []) >-PASS Bad algorithm: generateKey({name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, []) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, []) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, []) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, []) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, []) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, []) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, []) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, []) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [encrypt]) >-PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, encrypt]) >-PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, sign, encrypt]) >-PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, encrypt]) >-PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, verify, sign, verify, encrypt]) >-PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [decrypt]) >-PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, decrypt]) >-PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, sign, decrypt]) >-PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, decrypt]) >-PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, verify, sign, verify, decrypt]) >-PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [wrapKey]) >-PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, wrapKey]) >-PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, sign, wrapKey]) >-PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, wrapKey]) >-PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, verify, sign, verify, wrapKey]) >-PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [unwrapKey]) >-PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, unwrapKey]) >-PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, sign, unwrapKey]) >-PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, unwrapKey]) >-PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, verify, sign, verify, unwrapKey]) >-PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, sign, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, verify, sign, verify, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, sign, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, verify, sign, verify, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [encrypt]) >-PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, encrypt]) >-PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, sign, encrypt]) >-PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, encrypt]) >-PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, verify, sign, verify, encrypt]) >-PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [decrypt]) >-PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, decrypt]) >-PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, sign, decrypt]) >-PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, decrypt]) >-PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, verify, sign, verify, decrypt]) >-PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [wrapKey]) >-PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, wrapKey]) >-PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, sign, wrapKey]) >-PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, wrapKey]) >-PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, verify, sign, verify, wrapKey]) >-PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [unwrapKey]) >-PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, unwrapKey]) >-PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, sign, unwrapKey]) >-PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, unwrapKey]) >-PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, verify, sign, verify, unwrapKey]) >-PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, sign, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, verify, sign, verify, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, sign, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, verify, sign, verify, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [encrypt]) >-PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, encrypt]) >-PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, sign, encrypt]) >-PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, encrypt]) >-PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, verify, sign, verify, encrypt]) >-PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [decrypt]) >-PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, decrypt]) >-PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, sign, decrypt]) >-PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, decrypt]) >-PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, verify, sign, verify, decrypt]) >-PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [wrapKey]) >-PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, wrapKey]) >-PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, sign, wrapKey]) >-PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, wrapKey]) >-PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, verify, sign, verify, wrapKey]) >-PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [unwrapKey]) >-PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, unwrapKey]) >-PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, sign, unwrapKey]) >-PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, unwrapKey]) >-PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, verify, sign, verify, unwrapKey]) >-PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, sign, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, verify, sign, verify, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, sign, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, verify, sign, verify, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [encrypt]) >-PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, encrypt]) >-PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, sign, encrypt]) >-PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, encrypt]) >-PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, verify, sign, verify, encrypt]) >-PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [decrypt]) >-PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, decrypt]) >-PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, sign, decrypt]) >-PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, decrypt]) >-PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, verify, sign, verify, decrypt]) >-PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [wrapKey]) >-PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, wrapKey]) >-PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, sign, wrapKey]) >-PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, wrapKey]) >-PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, verify, sign, verify, wrapKey]) >-PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [unwrapKey]) >-PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, unwrapKey]) >-PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, sign, unwrapKey]) >-PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, unwrapKey]) >-PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, verify, sign, verify, unwrapKey]) >-PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, sign, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, verify, sign, verify, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, sign, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, verify, sign, verify, deriveBits]) >-PASS Empty usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, false, []) >-PASS Empty usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, []) >-PASS Empty usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, false, []) >-PASS Empty usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, []) >-PASS Empty usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, false, []) >-PASS Empty usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, []) >-PASS Empty usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, false, []) >-PASS Empty usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, []) >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_HMAC.https.html b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_HMAC.https.html >deleted file mode 100644 >index e037f0d07d55cdde38a22ed2e9fd89e8cb31d3f3..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_HMAC.https.html >+++ /dev/null >@@ -1,18 +0,0 @@ >-<!DOCTYPE html> >-<meta charset=utf-8> >-<meta name="timeout" content="long"> >-<title>WebCryptoAPI: generateKey() for Failures</title> >-<link rel="author" title="Charles Engelke" href="mailto:w3c@engelke.com"> >-<link rel="help" href="https://www.w3.org/TR/WebCryptoAPI/#dfn-SubtleCrypto-method-generateKey"> >-<script src="/resources/testharness.js"></script> >-<script src="/resources/testharnessreport.js"></script> >- >-<script src="/WebCryptoAPI/util/helpers.js"></script> >-<script src="failures.js"></script> >- >-<h1>generateKey Tests for Bad Parameters</h1> >- >-<div id="log"></div> >-<script> >-run_test(["HMAC"]); >-</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_RSA-OAEP.https-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_RSA-OAEP.https-expected.txt >deleted file mode 100644 >index e80c3f82fb6b13ddc3af85b8ecf0660c98d7429d..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_RSA-OAEP.https-expected.txt >+++ /dev/null >@@ -1,500 +0,0 @@ >-generateKey Tests for Bad Parameters >- >- >-PASS Bad algorithm: generateKey(AES, false, [decrypt]) >-PASS Bad algorithm: generateKey(AES, true, [decrypt]) >-PASS Bad algorithm: generateKey(AES, RED, [decrypt]) >-PASS Bad algorithm: generateKey(AES, 7, [decrypt]) >-PASS Bad algorithm: generateKey(AES, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey(AES, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey(AES, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey(AES, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey(AES, false, [sign]) >-PASS Bad algorithm: generateKey(AES, true, [sign]) >-PASS Bad algorithm: generateKey(AES, RED, [sign]) >-PASS Bad algorithm: generateKey(AES, 7, [sign]) >-PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey(AES, false, [deriveBits]) >-PASS Bad algorithm: generateKey(AES, true, [deriveBits]) >-PASS Bad algorithm: generateKey(AES, RED, [deriveBits]) >-PASS Bad algorithm: generateKey(AES, 7, [deriveBits]) >-PASS Bad algorithm: generateKey(AES, false, []) >-PASS Bad algorithm: generateKey(AES, true, []) >-PASS Bad algorithm: generateKey(AES, RED, []) >-PASS Bad algorithm: generateKey(AES, 7, []) >-PASS Bad algorithm: generateKey(AES, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey(AES, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey(AES, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey(AES, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, false, [decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, true, [decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, false, [sign]) >-PASS Bad algorithm: generateKey({name: AES}, true, [sign]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [sign]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [sign]) >-PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, false, []) >-PASS Bad algorithm: generateKey({name: AES}, true, []) >-PASS Bad algorithm: generateKey({name: AES}, RED, []) >-PASS Bad algorithm: generateKey({name: AES}, 7, []) >-PASS Bad algorithm: generateKey({name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, []) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, []) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, []) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, []) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, []) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, []) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, []) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, []) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, encrypt, sign]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, encrypt, sign]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, sign]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, sign]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, sign]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, sign]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, sign]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, encrypt, verify]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, encrypt, verify]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, verify]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, verify]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, verify]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, verify]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, verify]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, verify]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, encrypt, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, encrypt, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, encrypt, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, encrypt, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, encrypt, sign]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, encrypt, sign]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, encrypt, sign]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, sign]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, sign]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, sign]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, sign]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, sign]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, encrypt, verify]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, encrypt, verify]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, encrypt, verify]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, verify]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, verify]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, verify]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, verify]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, verify]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, verify]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, encrypt, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, encrypt, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, encrypt, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, encrypt, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, encrypt, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, encrypt, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, [decrypt]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, [decrypt]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, [unwrapKey]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, [unwrapKey]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, []) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, []) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [unwrapKey, decrypt, encrypt]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [unwrapKey, encrypt]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [decrypt]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [decrypt]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [unwrapKey, decrypt]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [unwrapKey, wrapKey]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [unwrapKey]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [unwrapKey]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, []) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, []) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Empty usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >-PASS Empty usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >-PASS Empty usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >-PASS Empty usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_RSA-OAEP.https.html b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_RSA-OAEP.https.html >deleted file mode 100644 >index ddd63beb343022461efb02347acc706715173c64..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_RSA-OAEP.https.html >+++ /dev/null >@@ -1,18 +0,0 @@ >-<!DOCTYPE html> >-<meta charset=utf-8> >-<meta name="timeout" content="long"> >-<title>WebCryptoAPI: generateKey() for Failures</title> >-<link rel="author" title="Charles Engelke" href="mailto:w3c@engelke.com"> >-<link rel="help" href="https://www.w3.org/TR/WebCryptoAPI/#dfn-SubtleCrypto-method-generateKey"> >-<script src="/resources/testharness.js"></script> >-<script src="/resources/testharnessreport.js"></script> >- >-<script src="/WebCryptoAPI/util/helpers.js"></script> >-<script src="failures.js"></script> >- >-<h1>generateKey Tests for Bad Parameters</h1> >- >-<div id="log"></div> >-<script> >-run_test(["RSA-OAEP"]); >-</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_RSA-PSS.https-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_RSA-PSS.https-expected.txt >deleted file mode 100644 >index 67730a3966acc70d2fa9b16c17799a781dc17acf..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_RSA-PSS.https-expected.txt >+++ /dev/null >@@ -1,396 +0,0 @@ >-generateKey Tests for Bad Parameters >- >- >-PASS Bad algorithm: generateKey(AES, false, [decrypt]) >-PASS Bad algorithm: generateKey(AES, true, [decrypt]) >-PASS Bad algorithm: generateKey(AES, RED, [decrypt]) >-PASS Bad algorithm: generateKey(AES, 7, [decrypt]) >-PASS Bad algorithm: generateKey(AES, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey(AES, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey(AES, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey(AES, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey(AES, false, [sign]) >-PASS Bad algorithm: generateKey(AES, true, [sign]) >-PASS Bad algorithm: generateKey(AES, RED, [sign]) >-PASS Bad algorithm: generateKey(AES, 7, [sign]) >-PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey(AES, false, [deriveBits]) >-PASS Bad algorithm: generateKey(AES, true, [deriveBits]) >-PASS Bad algorithm: generateKey(AES, RED, [deriveBits]) >-PASS Bad algorithm: generateKey(AES, 7, [deriveBits]) >-PASS Bad algorithm: generateKey(AES, false, []) >-PASS Bad algorithm: generateKey(AES, true, []) >-PASS Bad algorithm: generateKey(AES, RED, []) >-PASS Bad algorithm: generateKey(AES, 7, []) >-PASS Bad algorithm: generateKey(AES, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey(AES, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey(AES, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey(AES, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, false, [decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, true, [decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, false, [sign]) >-PASS Bad algorithm: generateKey({name: AES}, true, [sign]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [sign]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [sign]) >-PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, false, []) >-PASS Bad algorithm: generateKey({name: AES}, true, []) >-PASS Bad algorithm: generateKey({name: AES}, RED, []) >-PASS Bad algorithm: generateKey({name: AES}, 7, []) >-PASS Bad algorithm: generateKey({name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, []) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, []) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, []) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, []) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, []) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, []) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, []) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, []) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt]) assert_equals: Bad usages not supported expected "SyntaxError" but got "NotSupportedError" >-FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, encrypt]) assert_equals: Bad usages not supported expected "SyntaxError" but got "NotSupportedError" >-FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, encrypt]) assert_equals: Bad usages not supported expected "SyntaxError" but got "NotSupportedError" >-FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, encrypt]) assert_equals: Bad usages not supported expected "SyntaxError" but got "NotSupportedError" >-FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) assert_equals: Bad usages not supported expected "SyntaxError" but got "NotSupportedError" >-FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) assert_equals: Bad usages not supported expected "SyntaxError" but got "NotSupportedError" >-FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, decrypt]) assert_equals: Bad usages not supported expected "SyntaxError" but got "NotSupportedError" >-FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, decrypt]) assert_equals: Bad usages not supported expected "SyntaxError" but got "NotSupportedError" >-FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey]) assert_equals: Bad usages not supported expected "SyntaxError" but got "NotSupportedError" >-FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, wrapKey]) assert_equals: Bad usages not supported expected "SyntaxError" but got "NotSupportedError" >-FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, wrapKey]) assert_equals: Bad usages not supported expected "SyntaxError" but got "NotSupportedError" >-FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, wrapKey]) assert_equals: Bad usages not supported expected "SyntaxError" but got "NotSupportedError" >-FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey]) assert_equals: Bad usages not supported expected "SyntaxError" but got "NotSupportedError" >-FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, unwrapKey]) assert_equals: Bad usages not supported expected "SyntaxError" but got "NotSupportedError" >-FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, unwrapKey]) assert_equals: Bad usages not supported expected "SyntaxError" but got "NotSupportedError" >-FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, unwrapKey]) assert_equals: Bad usages not supported expected "SyntaxError" but got "NotSupportedError" >-FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveKey]) assert_equals: Bad usages not supported expected "SyntaxError" but got "NotSupportedError" >-FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, deriveKey]) assert_equals: Bad usages not supported expected "SyntaxError" but got "NotSupportedError" >-FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, deriveKey]) assert_equals: Bad usages not supported expected "SyntaxError" but got "NotSupportedError" >-FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, deriveKey]) assert_equals: Bad usages not supported expected "SyntaxError" but got "NotSupportedError" >-FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) assert_equals: Bad usages not supported expected "SyntaxError" but got "NotSupportedError" >-FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, deriveBits]) assert_equals: Bad usages not supported expected "SyntaxError" but got "NotSupportedError" >-FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, deriveBits]) assert_equals: Bad usages not supported expected "SyntaxError" but got "NotSupportedError" >-FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, deriveBits]) assert_equals: Bad usages not supported expected "SyntaxError" but got "NotSupportedError" >-FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt]) assert_equals: Bad usages not supported expected "SyntaxError" but got "NotSupportedError" >-FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, encrypt]) assert_equals: Bad usages not supported expected "SyntaxError" but got "NotSupportedError" >-FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, encrypt]) assert_equals: Bad usages not supported expected "SyntaxError" but got "NotSupportedError" >-FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, encrypt]) assert_equals: Bad usages not supported expected "SyntaxError" but got "NotSupportedError" >-FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) assert_equals: Bad usages not supported expected "SyntaxError" but got "NotSupportedError" >-FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) assert_equals: Bad usages not supported expected "SyntaxError" but got "NotSupportedError" >-FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, decrypt]) assert_equals: Bad usages not supported expected "SyntaxError" but got "NotSupportedError" >-FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, decrypt]) assert_equals: Bad usages not supported expected "SyntaxError" but got "NotSupportedError" >-FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey]) assert_equals: Bad usages not supported expected "SyntaxError" but got "NotSupportedError" >-FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, wrapKey]) assert_equals: Bad usages not supported expected "SyntaxError" but got "NotSupportedError" >-FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, wrapKey]) assert_equals: Bad usages not supported expected "SyntaxError" but got "NotSupportedError" >-FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, wrapKey]) assert_equals: Bad usages not supported expected "SyntaxError" but got "NotSupportedError" >-FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey]) assert_equals: Bad usages not supported expected "SyntaxError" but got "NotSupportedError" >-FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, unwrapKey]) assert_equals: Bad usages not supported expected "SyntaxError" but got "NotSupportedError" >-FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, unwrapKey]) assert_equals: Bad usages not supported expected "SyntaxError" but got "NotSupportedError" >-FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, unwrapKey]) assert_equals: Bad usages not supported expected "SyntaxError" but got "NotSupportedError" >-FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveKey]) assert_equals: Bad usages not supported expected "SyntaxError" but got "NotSupportedError" >-FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, deriveKey]) assert_equals: Bad usages not supported expected "SyntaxError" but got "NotSupportedError" >-FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, deriveKey]) assert_equals: Bad usages not supported expected "SyntaxError" but got "NotSupportedError" >-FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, deriveKey]) assert_equals: Bad usages not supported expected "SyntaxError" but got "NotSupportedError" >-FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) assert_equals: Bad usages not supported expected "SyntaxError" but got "NotSupportedError" >-FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, deriveBits]) assert_equals: Bad usages not supported expected "SyntaxError" but got "NotSupportedError" >-FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, deriveBits]) assert_equals: Bad usages not supported expected "SyntaxError" but got "NotSupportedError" >-FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, deriveBits]) assert_equals: Bad usages not supported expected "SyntaxError" but got "NotSupportedError" >-FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1}}, false, [sign]) assert_equals: Bad algorithm property not supported expected "OperationError" but got "NotSupportedError" >-FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1}}, true, [sign]) assert_equals: Bad algorithm property not supported expected "OperationError" but got "NotSupportedError" >-FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1}}, false, [verify, sign]) assert_equals: Bad algorithm property not supported expected "OperationError" but got "NotSupportedError" >-FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1}}, true, [verify, sign]) assert_equals: Bad algorithm property not supported expected "OperationError" but got "NotSupportedError" >-FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1}}, false, []) assert_equals: Bad algorithm property not supported expected "OperationError" but got "NotSupportedError" >-FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1}}, true, []) assert_equals: Bad algorithm property not supported expected "OperationError" but got "NotSupportedError" >-FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1}}, false, [sign, verify, sign, sign, verify]) assert_equals: Bad algorithm property not supported expected "OperationError" but got "NotSupportedError" >-FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1}}, true, [sign, verify, sign, sign, verify]) assert_equals: Bad algorithm property not supported expected "OperationError" but got "NotSupportedError" >-FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [sign]) assert_equals: Bad algorithm property not supported expected "OperationError" but got "NotSupportedError" >-FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [sign]) assert_equals: Bad algorithm property not supported expected "OperationError" but got "NotSupportedError" >-FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [verify, sign]) assert_equals: Bad algorithm property not supported expected "OperationError" but got "NotSupportedError" >-FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [verify, sign]) assert_equals: Bad algorithm property not supported expected "OperationError" but got "NotSupportedError" >-FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 0}}, false, []) assert_equals: Bad algorithm property not supported expected "OperationError" but got "NotSupportedError" >-FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 0}}, true, []) assert_equals: Bad algorithm property not supported expected "OperationError" but got "NotSupportedError" >-FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [sign, verify, sign, sign, verify]) assert_equals: Bad algorithm property not supported expected "OperationError" but got "NotSupportedError" >-FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [sign, verify, sign, sign, verify]) assert_equals: Bad algorithm property not supported expected "OperationError" but got "NotSupportedError" >-FAIL Empty usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) assert_equals: Empty usages not supported expected "SyntaxError" but got "NotSupportedError" >-FAIL Empty usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) assert_equals: Empty usages not supported expected "SyntaxError" but got "NotSupportedError" >-FAIL Empty usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) assert_equals: Empty usages not supported expected "SyntaxError" but got "NotSupportedError" >-FAIL Empty usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) assert_equals: Empty usages not supported expected "SyntaxError" but got "NotSupportedError" >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_RSA-PSS.https.html b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_RSA-PSS.https.html >deleted file mode 100644 >index 2814b34e9a443d29a05cd01bf47bf5e9a1bdfee0..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_RSA-PSS.https.html >+++ /dev/null >@@ -1,18 +0,0 @@ >-<!DOCTYPE html> >-<meta charset=utf-8> >-<meta name="timeout" content="long"> >-<title>WebCryptoAPI: generateKey() for Failures</title> >-<link rel="author" title="Charles Engelke" href="mailto:w3c@engelke.com"> >-<link rel="help" href="https://www.w3.org/TR/WebCryptoAPI/#dfn-SubtleCrypto-method-generateKey"> >-<script src="/resources/testharness.js"></script> >-<script src="/resources/testharnessreport.js"></script> >- >-<script src="/WebCryptoAPI/util/helpers.js"></script> >-<script src="failures.js"></script> >- >-<h1>generateKey Tests for Bad Parameters</h1> >- >-<div id="log"></div> >-<script> >-run_test(["RSA-PSS"]); >-</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_RSASSA-PKCS1-v1_5.https-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_RSASSA-PKCS1-v1_5.https-expected.txt >deleted file mode 100644 >index 1260d4fd2b885143e858966cbfaa77e1efb1022e..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_RSASSA-PKCS1-v1_5.https-expected.txt >+++ /dev/null >@@ -1,396 +0,0 @@ >-generateKey Tests for Bad Parameters >- >- >-PASS Bad algorithm: generateKey(AES, false, [decrypt]) >-PASS Bad algorithm: generateKey(AES, true, [decrypt]) >-PASS Bad algorithm: generateKey(AES, RED, [decrypt]) >-PASS Bad algorithm: generateKey(AES, 7, [decrypt]) >-PASS Bad algorithm: generateKey(AES, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey(AES, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey(AES, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey(AES, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey(AES, false, [sign]) >-PASS Bad algorithm: generateKey(AES, true, [sign]) >-PASS Bad algorithm: generateKey(AES, RED, [sign]) >-PASS Bad algorithm: generateKey(AES, 7, [sign]) >-PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey(AES, false, [deriveBits]) >-PASS Bad algorithm: generateKey(AES, true, [deriveBits]) >-PASS Bad algorithm: generateKey(AES, RED, [deriveBits]) >-PASS Bad algorithm: generateKey(AES, 7, [deriveBits]) >-PASS Bad algorithm: generateKey(AES, false, []) >-PASS Bad algorithm: generateKey(AES, true, []) >-PASS Bad algorithm: generateKey(AES, RED, []) >-PASS Bad algorithm: generateKey(AES, 7, []) >-PASS Bad algorithm: generateKey(AES, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey(AES, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey(AES, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey(AES, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, false, [decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, true, [decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, false, [sign]) >-PASS Bad algorithm: generateKey({name: AES}, true, [sign]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [sign]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [sign]) >-PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, false, []) >-PASS Bad algorithm: generateKey({name: AES}, true, []) >-PASS Bad algorithm: generateKey({name: AES}, RED, []) >-PASS Bad algorithm: generateKey({name: AES}, 7, []) >-PASS Bad algorithm: generateKey({name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, []) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, []) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, []) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, []) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, []) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, []) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, []) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, []) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, encrypt]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, encrypt]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, encrypt]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, decrypt]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, decrypt]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, wrapKey]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, wrapKey]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, wrapKey]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, unwrapKey]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, unwrapKey]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, unwrapKey]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, encrypt]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, encrypt]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, encrypt]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, decrypt]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, decrypt]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, wrapKey]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, wrapKey]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, wrapKey]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, unwrapKey]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, unwrapKey]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, unwrapKey]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, deriveBits]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1}}, false, [sign]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1}}, true, [sign]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1}}, false, [verify, sign]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1}}, true, [verify, sign]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1}}, false, []) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1}}, true, []) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1}}, false, [sign, verify, sign, sign, verify]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1}}, true, [sign, verify, sign, sign, verify]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [sign]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [sign]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [verify, sign]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [verify, sign]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 0}}, false, []) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 0}}, true, []) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [sign, verify, sign, sign, verify]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [sign, verify, sign, sign, verify]) >-PASS Empty usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >-PASS Empty usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >-PASS Empty usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >-PASS Empty usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_RSASSA-PKCS1-v1_5.https.html b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_RSASSA-PKCS1-v1_5.https.html >deleted file mode 100644 >index 0e28914af806939833b8f0f08901be0baabd0bb8..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_RSASSA-PKCS1-v1_5.https.html >+++ /dev/null >@@ -1,18 +0,0 @@ >-<!DOCTYPE html> >-<meta charset=utf-8> >-<meta name="timeout" content="long"> >-<title>WebCryptoAPI: generateKey() for Failures</title> >-<link rel="author" title="Charles Engelke" href="mailto:w3c@engelke.com"> >-<link rel="help" href="https://www.w3.org/TR/WebCryptoAPI/#dfn-SubtleCrypto-method-generateKey"> >-<script src="/resources/testharness.js"></script> >-<script src="/resources/testharnessreport.js"></script> >- >-<script src="/WebCryptoAPI/util/helpers.js"></script> >-<script src="failures.js"></script> >- >-<h1>generateKey Tests for Bad Parameters</h1> >- >-<div id="log"></div> >-<script> >-run_test(["RSASSA-PKCS1-v1_5"]); >-</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_AES-CBC-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_AES-CBC-expected.txt >deleted file mode 100644 >index 8a27e463c63a3915b24c938dfeb7c0d5b0686608..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_AES-CBC-expected.txt >+++ /dev/null >@@ -1,294 +0,0 @@ >-generateKey Tests for Good Parameters >- >-Warning! RSA key generation is intrinsically very slow, so the related tests can take up to several minutes to complete, depending on browser! >- >- >-PASS Success: generateKey({length: 128, name: AES-CBC}, false, [encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, true, [encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, false, [decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, true, [decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, false, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, false, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, false, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, false, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, false, [decrypt]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, true, [decrypt]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, false, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, false, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, false, [wrapKey]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, true, [wrapKey]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, false, [unwrapKey]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, false, [encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, true, [encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, false, [decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, true, [decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, false, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, false, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, false, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, false, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, false, [decrypt]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, true, [decrypt]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, false, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, false, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, false, [wrapKey]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, true, [wrapKey]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, false, [unwrapKey]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, false, [encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, true, [encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, false, [decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, true, [decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, false, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, false, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, false, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, false, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, false, [decrypt]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, true, [decrypt]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, false, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, false, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, false, [wrapKey]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, true, [wrapKey]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, false, [unwrapKey]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, false, [encrypt]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, true, [encrypt]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, false, [decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, true, [decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, false, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, true, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, false, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, true, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, false, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, true, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, false, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, true, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, false, [decrypt]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, true, [decrypt]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, false, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, true, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, false, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, true, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, false, [wrapKey]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, true, [wrapKey]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, false, [unwrapKey]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, true, [unwrapKey]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, false, [encrypt]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, true, [encrypt]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, false, [decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, true, [decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, false, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, true, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, false, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, true, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, false, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, true, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, false, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, true, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, false, [decrypt]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, true, [decrypt]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, false, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, true, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, false, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, true, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, false, [wrapKey]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, true, [wrapKey]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, false, [unwrapKey]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, true, [unwrapKey]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, false, [encrypt]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, true, [encrypt]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, false, [decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, true, [decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, false, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, true, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, false, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, true, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, false, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, true, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, false, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, true, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, false, [decrypt]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, true, [decrypt]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, false, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, true, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, false, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, true, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, false, [wrapKey]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, true, [wrapKey]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, false, [unwrapKey]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, true, [unwrapKey]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [decrypt]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [decrypt]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [wrapKey]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [wrapKey]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [unwrapKey]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [unwrapKey]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [decrypt]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [decrypt]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [wrapKey]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [wrapKey]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [unwrapKey]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [unwrapKey]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [decrypt]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [decrypt]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [wrapKey]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [wrapKey]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [unwrapKey]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [unwrapKey]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_AES-CBC.https-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_AES-CBC.https-expected.txt >deleted file mode 100644 >index 8a27e463c63a3915b24c938dfeb7c0d5b0686608..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_AES-CBC.https-expected.txt >+++ /dev/null >@@ -1,294 +0,0 @@ >-generateKey Tests for Good Parameters >- >-Warning! RSA key generation is intrinsically very slow, so the related tests can take up to several minutes to complete, depending on browser! >- >- >-PASS Success: generateKey({length: 128, name: AES-CBC}, false, [encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, true, [encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, false, [decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, true, [decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, false, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, false, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, false, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, false, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, false, [decrypt]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, true, [decrypt]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, false, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, false, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, false, [wrapKey]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, true, [wrapKey]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, false, [unwrapKey]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 128, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, false, [encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, true, [encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, false, [decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, true, [decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, false, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, false, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, false, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, false, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, false, [decrypt]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, true, [decrypt]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, false, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, false, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, false, [wrapKey]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, true, [wrapKey]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, false, [unwrapKey]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 192, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, false, [encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, true, [encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, false, [decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, true, [decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, false, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, false, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, false, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, false, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, false, [decrypt]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, true, [decrypt]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, false, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, false, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, false, [wrapKey]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, true, [wrapKey]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, false, [unwrapKey]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 256, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, false, [encrypt]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, true, [encrypt]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, false, [decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, true, [decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, false, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, true, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, false, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, true, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, false, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, true, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, false, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, true, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, false, [decrypt]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, true, [decrypt]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, false, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, true, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, false, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, true, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, false, [wrapKey]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, true, [wrapKey]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, false, [unwrapKey]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, true, [unwrapKey]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 128, name: aes-cbc}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, false, [encrypt]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, true, [encrypt]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, false, [decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, true, [decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, false, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, true, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, false, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, true, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, false, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, true, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, false, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, true, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, false, [decrypt]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, true, [decrypt]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, false, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, true, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, false, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, true, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, false, [wrapKey]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, true, [wrapKey]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, false, [unwrapKey]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, true, [unwrapKey]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 192, name: aes-cbc}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, false, [encrypt]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, true, [encrypt]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, false, [decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, true, [decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, false, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, true, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, false, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, true, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, false, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, true, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, false, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, true, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, false, [decrypt]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, true, [decrypt]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, false, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, true, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, false, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, true, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, false, [wrapKey]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, true, [wrapKey]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, false, [unwrapKey]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, true, [unwrapKey]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 256, name: aes-cbc}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [decrypt]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [decrypt]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [wrapKey]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [wrapKey]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [unwrapKey]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [unwrapKey]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [decrypt]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [decrypt]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [wrapKey]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [wrapKey]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [unwrapKey]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [unwrapKey]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [decrypt]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [decrypt]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [wrapKey]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [wrapKey]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [unwrapKey]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [unwrapKey]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_AES-CBC.https.html b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_AES-CBC.https.html >deleted file mode 100644 >index af809353900783157f64f547b7c9b652fca53a23..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_AES-CBC.https.html >+++ /dev/null >@@ -1,23 +0,0 @@ >-<!DOCTYPE html> >-<meta charset=utf-8> >-<meta name="timeout" content="long"> >-<title>WebCryptoAPI: generateKey() Successful Calls</title> >-<link rel="author" title="Charles Engelke" href="mailto:w3c@engelke.com"> >-<link rel="help" href="https://www.w3.org/TR/WebCryptoAPI/#dfn-SubtleCrypto-method-generateKey"> >-<script src="/resources/testharness.js"></script> >-<script src="/resources/testharnessreport.js"></script> >- >-<script src="/WebCryptoAPI/util/helpers.js"></script> >-<script src="successes.js"></script> >- >-<h1>generateKey Tests for Good Parameters</h1> >-<p> >- <strong>Warning!</strong> RSA key generation is intrinsically >- very slow, so the related tests can take up to >- several minutes to complete, depending on browser! >-</p> >- >-<div id="log"></div> >-<script> >-run_test(["AES-CBC"]); >-</script> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_AES-CTR-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_AES-CTR-expected.txt >deleted file mode 100644 >index 5345ac939529c1fefdb61782903282d958b2fd80..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_AES-CTR-expected.txt >+++ /dev/null >@@ -1,294 +0,0 @@ >-generateKey Tests for Good Parameters >- >-Warning! RSA key generation is intrinsically very slow, so the related tests can take up to several minutes to complete, depending on browser! >- >- >-PASS Success: generateKey({length: 128, name: AES-CTR}, false, [encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, true, [encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, false, [decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, true, [decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, false, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, false, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, false, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, false, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, false, [decrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, true, [decrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, false, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, false, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, false, [wrapKey]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, true, [wrapKey]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, false, [unwrapKey]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, false, [encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, true, [encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, false, [decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, true, [decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, false, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, false, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, false, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, false, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, false, [decrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, true, [decrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, false, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, false, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, false, [wrapKey]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, true, [wrapKey]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, false, [unwrapKey]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, false, [encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, true, [encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, false, [decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, true, [decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, false, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, false, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, false, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, false, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, false, [decrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, true, [decrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, false, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, false, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, false, [wrapKey]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, true, [wrapKey]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, false, [unwrapKey]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, false, [encrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, true, [encrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, false, [decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, true, [decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, false, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, true, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, false, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, true, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, false, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, true, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, false, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, true, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, false, [decrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, true, [decrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, false, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, true, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, false, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, true, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, false, [wrapKey]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, true, [wrapKey]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, false, [unwrapKey]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, true, [unwrapKey]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, false, [encrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, true, [encrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, false, [decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, true, [decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, false, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, true, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, false, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, true, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, false, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, true, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, false, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, true, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, false, [decrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, true, [decrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, false, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, true, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, false, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, true, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, false, [wrapKey]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, true, [wrapKey]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, false, [unwrapKey]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, true, [unwrapKey]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, false, [encrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, true, [encrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, false, [decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, true, [decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, false, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, true, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, false, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, true, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, false, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, true, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, false, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, true, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, false, [decrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, true, [decrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, false, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, true, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, false, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, true, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, false, [wrapKey]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, true, [wrapKey]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, false, [unwrapKey]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, true, [unwrapKey]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, false, [encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, true, [encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, false, [decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, true, [decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, false, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, true, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, false, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, true, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, false, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, true, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, false, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, true, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, false, [decrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, true, [decrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, false, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, true, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, false, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, true, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, false, [wrapKey]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, true, [wrapKey]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, false, [unwrapKey]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, true, [unwrapKey]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, false, [encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, true, [encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, false, [decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, true, [decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, false, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, true, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, false, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, true, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, false, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, true, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, false, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, true, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, false, [decrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, true, [decrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, false, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, true, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, false, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, true, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, false, [wrapKey]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, true, [wrapKey]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, false, [unwrapKey]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, true, [unwrapKey]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, false, [encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, true, [encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, false, [decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, true, [decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, false, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, true, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, false, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, true, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, false, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, true, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, false, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, true, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, false, [decrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, true, [decrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, false, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, true, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, false, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, true, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, false, [wrapKey]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, true, [wrapKey]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, false, [unwrapKey]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, true, [unwrapKey]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_AES-CTR.https-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_AES-CTR.https-expected.txt >deleted file mode 100644 >index 5345ac939529c1fefdb61782903282d958b2fd80..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_AES-CTR.https-expected.txt >+++ /dev/null >@@ -1,294 +0,0 @@ >-generateKey Tests for Good Parameters >- >-Warning! RSA key generation is intrinsically very slow, so the related tests can take up to several minutes to complete, depending on browser! >- >- >-PASS Success: generateKey({length: 128, name: AES-CTR}, false, [encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, true, [encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, false, [decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, true, [decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, false, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, false, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, false, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, false, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, false, [decrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, true, [decrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, false, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, false, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, false, [wrapKey]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, true, [wrapKey]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, false, [unwrapKey]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 128, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, false, [encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, true, [encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, false, [decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, true, [decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, false, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, false, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, false, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, false, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, false, [decrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, true, [decrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, false, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, false, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, false, [wrapKey]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, true, [wrapKey]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, false, [unwrapKey]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 192, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, false, [encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, true, [encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, false, [decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, true, [decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, false, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, false, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, false, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, false, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, false, [decrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, true, [decrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, false, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, false, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, false, [wrapKey]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, true, [wrapKey]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, false, [unwrapKey]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 256, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, false, [encrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, true, [encrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, false, [decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, true, [decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, false, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, true, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, false, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, true, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, false, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, true, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, false, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, true, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, false, [decrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, true, [decrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, false, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, true, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, false, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, true, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, false, [wrapKey]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, true, [wrapKey]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, false, [unwrapKey]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, true, [unwrapKey]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 128, name: aes-ctr}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, false, [encrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, true, [encrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, false, [decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, true, [decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, false, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, true, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, false, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, true, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, false, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, true, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, false, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, true, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, false, [decrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, true, [decrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, false, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, true, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, false, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, true, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, false, [wrapKey]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, true, [wrapKey]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, false, [unwrapKey]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, true, [unwrapKey]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 192, name: aes-ctr}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, false, [encrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, true, [encrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, false, [decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, true, [decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, false, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, true, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, false, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, true, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, false, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, true, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, false, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, true, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, false, [decrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, true, [decrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, false, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, true, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, false, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, true, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, false, [wrapKey]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, true, [wrapKey]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, false, [unwrapKey]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, true, [unwrapKey]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 256, name: aes-ctr}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, false, [encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, true, [encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, false, [decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, true, [decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, false, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, true, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, false, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, true, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, false, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, true, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, false, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, true, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, false, [decrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, true, [decrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, false, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, true, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, false, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, true, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, false, [wrapKey]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, true, [wrapKey]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, false, [unwrapKey]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, true, [unwrapKey]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 128, name: Aes-ctr}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, false, [encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, true, [encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, false, [decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, true, [decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, false, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, true, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, false, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, true, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, false, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, true, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, false, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, true, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, false, [decrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, true, [decrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, false, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, true, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, false, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, true, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, false, [wrapKey]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, true, [wrapKey]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, false, [unwrapKey]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, true, [unwrapKey]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 192, name: Aes-ctr}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, false, [encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, true, [encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, false, [decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, true, [decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, false, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, true, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, false, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, true, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, false, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, true, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, false, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, true, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, false, [decrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, true, [decrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, false, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, true, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, false, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, true, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, false, [wrapKey]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, true, [wrapKey]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, false, [unwrapKey]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, true, [unwrapKey]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 256, name: Aes-ctr}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_AES-CTR.https.html b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_AES-CTR.https.html >deleted file mode 100644 >index 3608a4fde35bf7cae0158ba6e51cc88b7a8daa0d..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_AES-CTR.https.html >+++ /dev/null >@@ -1,23 +0,0 @@ >-<!DOCTYPE html> >-<meta charset=utf-8> >-<meta name="timeout" content="long"> >-<title>WebCryptoAPI: generateKey() Successful Calls</title> >-<link rel="author" title="Charles Engelke" href="mailto:w3c@engelke.com"> >-<link rel="help" href="https://www.w3.org/TR/WebCryptoAPI/#dfn-SubtleCrypto-method-generateKey"> >-<script src="/resources/testharness.js"></script> >-<script src="/resources/testharnessreport.js"></script> >- >-<script src="/WebCryptoAPI/util/helpers.js"></script> >-<script src="successes.js"></script> >- >-<h1>generateKey Tests for Good Parameters</h1> >-<p> >- <strong>Warning!</strong> RSA key generation is intrinsically >- very slow, so the related tests can take up to >- several minutes to complete, depending on browser! >-</p> >- >-<div id="log"></div> >-<script> >-run_test(["AES-CTR"]); >-</script> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_AES-GCM.https-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_AES-GCM.https-expected.txt >deleted file mode 100644 >index 6654b6071ad5e8b3b41b8c1fc9dd0bc5e4cbe9d6..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_AES-GCM.https-expected.txt >+++ /dev/null >@@ -1,294 +0,0 @@ >-generateKey Tests for Good Parameters >- >-Warning! RSA key generation is intrinsically very slow, so the related tests can take up to several minutes to complete, depending on browser! >- >- >-PASS Success: generateKey({length: 128, name: AES-GCM}, false, [encrypt]) >-PASS Success: generateKey({length: 128, name: AES-GCM}, true, [encrypt]) >-PASS Success: generateKey({length: 128, name: AES-GCM}, false, [decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-GCM}, true, [decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-GCM}, false, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-GCM}, false, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-GCM}, false, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-GCM}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-GCM}, false, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: AES-GCM}, false, [decrypt]) >-PASS Success: generateKey({length: 128, name: AES-GCM}, true, [decrypt]) >-PASS Success: generateKey({length: 128, name: AES-GCM}, false, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: AES-GCM}, false, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: AES-GCM}, false, [wrapKey]) >-PASS Success: generateKey({length: 128, name: AES-GCM}, true, [wrapKey]) >-PASS Success: generateKey({length: 128, name: AES-GCM}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 128, name: AES-GCM}, false, [unwrapKey]) >-PASS Success: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey]) >-PASS Success: generateKey({length: 128, name: AES-GCM}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 128, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 192, name: AES-GCM}, false, [encrypt]) >-PASS Success: generateKey({length: 192, name: AES-GCM}, true, [encrypt]) >-PASS Success: generateKey({length: 192, name: AES-GCM}, false, [decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-GCM}, true, [decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-GCM}, false, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-GCM}, false, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-GCM}, false, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-GCM}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-GCM}, false, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: AES-GCM}, false, [decrypt]) >-PASS Success: generateKey({length: 192, name: AES-GCM}, true, [decrypt]) >-PASS Success: generateKey({length: 192, name: AES-GCM}, false, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: AES-GCM}, false, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: AES-GCM}, false, [wrapKey]) >-PASS Success: generateKey({length: 192, name: AES-GCM}, true, [wrapKey]) >-PASS Success: generateKey({length: 192, name: AES-GCM}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 192, name: AES-GCM}, false, [unwrapKey]) >-PASS Success: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey]) >-PASS Success: generateKey({length: 192, name: AES-GCM}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 192, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 256, name: AES-GCM}, false, [encrypt]) >-PASS Success: generateKey({length: 256, name: AES-GCM}, true, [encrypt]) >-PASS Success: generateKey({length: 256, name: AES-GCM}, false, [decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-GCM}, true, [decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-GCM}, false, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-GCM}, false, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-GCM}, false, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-GCM}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-GCM}, false, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: AES-GCM}, false, [decrypt]) >-PASS Success: generateKey({length: 256, name: AES-GCM}, true, [decrypt]) >-PASS Success: generateKey({length: 256, name: AES-GCM}, false, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: AES-GCM}, false, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: AES-GCM}, false, [wrapKey]) >-PASS Success: generateKey({length: 256, name: AES-GCM}, true, [wrapKey]) >-PASS Success: generateKey({length: 256, name: AES-GCM}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 256, name: AES-GCM}, false, [unwrapKey]) >-PASS Success: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey]) >-PASS Success: generateKey({length: 256, name: AES-GCM}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 256, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 128, name: aes-gcm}, false, [encrypt]) >-PASS Success: generateKey({length: 128, name: aes-gcm}, true, [encrypt]) >-PASS Success: generateKey({length: 128, name: aes-gcm}, false, [decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-gcm}, true, [decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-gcm}, false, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-gcm}, true, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-gcm}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-gcm}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-gcm}, false, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-gcm}, true, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-gcm}, false, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-gcm}, true, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-gcm}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-gcm}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-gcm}, false, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-gcm}, true, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: aes-gcm}, false, [decrypt]) >-PASS Success: generateKey({length: 128, name: aes-gcm}, true, [decrypt]) >-PASS Success: generateKey({length: 128, name: aes-gcm}, false, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: aes-gcm}, true, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: aes-gcm}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: aes-gcm}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: aes-gcm}, false, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: aes-gcm}, true, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: aes-gcm}, false, [wrapKey]) >-PASS Success: generateKey({length: 128, name: aes-gcm}, true, [wrapKey]) >-PASS Success: generateKey({length: 128, name: aes-gcm}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 128, name: aes-gcm}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 128, name: aes-gcm}, false, [unwrapKey]) >-PASS Success: generateKey({length: 128, name: aes-gcm}, true, [unwrapKey]) >-PASS Success: generateKey({length: 128, name: aes-gcm}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 128, name: aes-gcm}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 192, name: aes-gcm}, false, [encrypt]) >-PASS Success: generateKey({length: 192, name: aes-gcm}, true, [encrypt]) >-PASS Success: generateKey({length: 192, name: aes-gcm}, false, [decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-gcm}, true, [decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-gcm}, false, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-gcm}, true, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-gcm}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-gcm}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-gcm}, false, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-gcm}, true, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-gcm}, false, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-gcm}, true, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-gcm}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-gcm}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-gcm}, false, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-gcm}, true, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: aes-gcm}, false, [decrypt]) >-PASS Success: generateKey({length: 192, name: aes-gcm}, true, [decrypt]) >-PASS Success: generateKey({length: 192, name: aes-gcm}, false, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: aes-gcm}, true, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: aes-gcm}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: aes-gcm}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: aes-gcm}, false, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: aes-gcm}, true, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: aes-gcm}, false, [wrapKey]) >-PASS Success: generateKey({length: 192, name: aes-gcm}, true, [wrapKey]) >-PASS Success: generateKey({length: 192, name: aes-gcm}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 192, name: aes-gcm}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 192, name: aes-gcm}, false, [unwrapKey]) >-PASS Success: generateKey({length: 192, name: aes-gcm}, true, [unwrapKey]) >-PASS Success: generateKey({length: 192, name: aes-gcm}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 192, name: aes-gcm}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 256, name: aes-gcm}, false, [encrypt]) >-PASS Success: generateKey({length: 256, name: aes-gcm}, true, [encrypt]) >-PASS Success: generateKey({length: 256, name: aes-gcm}, false, [decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-gcm}, true, [decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-gcm}, false, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-gcm}, true, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-gcm}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-gcm}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-gcm}, false, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-gcm}, true, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-gcm}, false, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-gcm}, true, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-gcm}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-gcm}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-gcm}, false, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-gcm}, true, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: aes-gcm}, false, [decrypt]) >-PASS Success: generateKey({length: 256, name: aes-gcm}, true, [decrypt]) >-PASS Success: generateKey({length: 256, name: aes-gcm}, false, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: aes-gcm}, true, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: aes-gcm}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: aes-gcm}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: aes-gcm}, false, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: aes-gcm}, true, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: aes-gcm}, false, [wrapKey]) >-PASS Success: generateKey({length: 256, name: aes-gcm}, true, [wrapKey]) >-PASS Success: generateKey({length: 256, name: aes-gcm}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 256, name: aes-gcm}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 256, name: aes-gcm}, false, [unwrapKey]) >-PASS Success: generateKey({length: 256, name: aes-gcm}, true, [unwrapKey]) >-PASS Success: generateKey({length: 256, name: aes-gcm}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 256, name: aes-gcm}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 128, name: Aes-gcm}, false, [encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-gcm}, true, [encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-gcm}, false, [decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-gcm}, true, [decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-gcm}, false, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-gcm}, true, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-gcm}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-gcm}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-gcm}, false, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-gcm}, true, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-gcm}, false, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-gcm}, true, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-gcm}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-gcm}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-gcm}, false, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-gcm}, true, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 128, name: Aes-gcm}, false, [decrypt]) >-PASS Success: generateKey({length: 128, name: Aes-gcm}, true, [decrypt]) >-PASS Success: generateKey({length: 128, name: Aes-gcm}, false, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: Aes-gcm}, true, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: Aes-gcm}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: Aes-gcm}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: Aes-gcm}, false, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: Aes-gcm}, true, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 128, name: Aes-gcm}, false, [wrapKey]) >-PASS Success: generateKey({length: 128, name: Aes-gcm}, true, [wrapKey]) >-PASS Success: generateKey({length: 128, name: Aes-gcm}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 128, name: Aes-gcm}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 128, name: Aes-gcm}, false, [unwrapKey]) >-PASS Success: generateKey({length: 128, name: Aes-gcm}, true, [unwrapKey]) >-PASS Success: generateKey({length: 128, name: Aes-gcm}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 128, name: Aes-gcm}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 192, name: Aes-gcm}, false, [encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-gcm}, true, [encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-gcm}, false, [decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-gcm}, true, [decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-gcm}, false, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-gcm}, true, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-gcm}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-gcm}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-gcm}, false, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-gcm}, true, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-gcm}, false, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-gcm}, true, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-gcm}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-gcm}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-gcm}, false, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-gcm}, true, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 192, name: Aes-gcm}, false, [decrypt]) >-PASS Success: generateKey({length: 192, name: Aes-gcm}, true, [decrypt]) >-PASS Success: generateKey({length: 192, name: Aes-gcm}, false, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: Aes-gcm}, true, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: Aes-gcm}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: Aes-gcm}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: Aes-gcm}, false, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: Aes-gcm}, true, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 192, name: Aes-gcm}, false, [wrapKey]) >-PASS Success: generateKey({length: 192, name: Aes-gcm}, true, [wrapKey]) >-PASS Success: generateKey({length: 192, name: Aes-gcm}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 192, name: Aes-gcm}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 192, name: Aes-gcm}, false, [unwrapKey]) >-PASS Success: generateKey({length: 192, name: Aes-gcm}, true, [unwrapKey]) >-PASS Success: generateKey({length: 192, name: Aes-gcm}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 192, name: Aes-gcm}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 256, name: Aes-gcm}, false, [encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-gcm}, true, [encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-gcm}, false, [decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-gcm}, true, [decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-gcm}, false, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-gcm}, true, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-gcm}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-gcm}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-gcm}, false, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-gcm}, true, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-gcm}, false, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-gcm}, true, [wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-gcm}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-gcm}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-gcm}, false, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-gcm}, true, [unwrapKey, encrypt]) >-PASS Success: generateKey({length: 256, name: Aes-gcm}, false, [decrypt]) >-PASS Success: generateKey({length: 256, name: Aes-gcm}, true, [decrypt]) >-PASS Success: generateKey({length: 256, name: Aes-gcm}, false, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: Aes-gcm}, true, [wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: Aes-gcm}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: Aes-gcm}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: Aes-gcm}, false, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: Aes-gcm}, true, [unwrapKey, decrypt]) >-PASS Success: generateKey({length: 256, name: Aes-gcm}, false, [wrapKey]) >-PASS Success: generateKey({length: 256, name: Aes-gcm}, true, [wrapKey]) >-PASS Success: generateKey({length: 256, name: Aes-gcm}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 256, name: Aes-gcm}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 256, name: Aes-gcm}, false, [unwrapKey]) >-PASS Success: generateKey({length: 256, name: Aes-gcm}, true, [unwrapKey]) >-PASS Success: generateKey({length: 256, name: Aes-gcm}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 256, name: Aes-gcm}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_AES-GCM.https.html b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_AES-GCM.https.html >deleted file mode 100644 >index eb7c6b5d006945a90684c169b016ed74463364f3..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_AES-GCM.https.html >+++ /dev/null >@@ -1,23 +0,0 @@ >-<!DOCTYPE html> >-<meta charset=utf-8> >-<meta name="timeout" content="long"> >-<title>WebCryptoAPI: generateKey() Successful Calls</title> >-<link rel="author" title="Charles Engelke" href="mailto:w3c@engelke.com"> >-<link rel="help" href="https://www.w3.org/TR/WebCryptoAPI/#dfn-SubtleCrypto-method-generateKey"> >-<script src="/resources/testharness.js"></script> >-<script src="/resources/testharnessreport.js"></script> >- >-<script src="/WebCryptoAPI/util/helpers.js"></script> >-<script src="successes.js"></script> >- >-<h1>generateKey Tests for Good Parameters</h1> >-<p> >- <strong>Warning!</strong> RSA key generation is intrinsically >- very slow, so the related tests can take up to >- several minutes to complete, depending on browser! >-</p> >- >-<div id="log"></div> >-<script> >-run_test(["AES-GCM"]); >-</script> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_AES-KW.https-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_AES-KW.https-expected.txt >deleted file mode 100644 >index 324ee593ba0bdf85049befdec816e75ee2c6a866..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_AES-KW.https-expected.txt >+++ /dev/null >@@ -1,78 +0,0 @@ >-generateKey Tests for Good Parameters >- >-Warning! RSA key generation is intrinsically very slow, so the related tests can take up to several minutes to complete, depending on browser! >- >- >-PASS Success: generateKey({length: 128, name: AES-KW}, false, [wrapKey]) >-PASS Success: generateKey({length: 128, name: AES-KW}, true, [wrapKey]) >-PASS Success: generateKey({length: 128, name: AES-KW}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 128, name: AES-KW}, false, [unwrapKey]) >-PASS Success: generateKey({length: 128, name: AES-KW}, true, [unwrapKey]) >-PASS Success: generateKey({length: 128, name: AES-KW}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 128, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 192, name: AES-KW}, false, [wrapKey]) >-PASS Success: generateKey({length: 192, name: AES-KW}, true, [wrapKey]) >-PASS Success: generateKey({length: 192, name: AES-KW}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 192, name: AES-KW}, false, [unwrapKey]) >-PASS Success: generateKey({length: 192, name: AES-KW}, true, [unwrapKey]) >-PASS Success: generateKey({length: 192, name: AES-KW}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 192, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 256, name: AES-KW}, false, [wrapKey]) >-PASS Success: generateKey({length: 256, name: AES-KW}, true, [wrapKey]) >-PASS Success: generateKey({length: 256, name: AES-KW}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 256, name: AES-KW}, false, [unwrapKey]) >-PASS Success: generateKey({length: 256, name: AES-KW}, true, [unwrapKey]) >-PASS Success: generateKey({length: 256, name: AES-KW}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 256, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 128, name: aes-kw}, false, [wrapKey]) >-PASS Success: generateKey({length: 128, name: aes-kw}, true, [wrapKey]) >-PASS Success: generateKey({length: 128, name: aes-kw}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 128, name: aes-kw}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 128, name: aes-kw}, false, [unwrapKey]) >-PASS Success: generateKey({length: 128, name: aes-kw}, true, [unwrapKey]) >-PASS Success: generateKey({length: 128, name: aes-kw}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 128, name: aes-kw}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 192, name: aes-kw}, false, [wrapKey]) >-PASS Success: generateKey({length: 192, name: aes-kw}, true, [wrapKey]) >-PASS Success: generateKey({length: 192, name: aes-kw}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 192, name: aes-kw}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 192, name: aes-kw}, false, [unwrapKey]) >-PASS Success: generateKey({length: 192, name: aes-kw}, true, [unwrapKey]) >-PASS Success: generateKey({length: 192, name: aes-kw}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 192, name: aes-kw}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 256, name: aes-kw}, false, [wrapKey]) >-PASS Success: generateKey({length: 256, name: aes-kw}, true, [wrapKey]) >-PASS Success: generateKey({length: 256, name: aes-kw}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 256, name: aes-kw}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 256, name: aes-kw}, false, [unwrapKey]) >-PASS Success: generateKey({length: 256, name: aes-kw}, true, [unwrapKey]) >-PASS Success: generateKey({length: 256, name: aes-kw}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 256, name: aes-kw}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 128, name: Aes-kw}, false, [wrapKey]) >-PASS Success: generateKey({length: 128, name: Aes-kw}, true, [wrapKey]) >-PASS Success: generateKey({length: 128, name: Aes-kw}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 128, name: Aes-kw}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 128, name: Aes-kw}, false, [unwrapKey]) >-PASS Success: generateKey({length: 128, name: Aes-kw}, true, [unwrapKey]) >-PASS Success: generateKey({length: 128, name: Aes-kw}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 128, name: Aes-kw}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 192, name: Aes-kw}, false, [wrapKey]) >-PASS Success: generateKey({length: 192, name: Aes-kw}, true, [wrapKey]) >-PASS Success: generateKey({length: 192, name: Aes-kw}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 192, name: Aes-kw}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 192, name: Aes-kw}, false, [unwrapKey]) >-PASS Success: generateKey({length: 192, name: Aes-kw}, true, [unwrapKey]) >-PASS Success: generateKey({length: 192, name: Aes-kw}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 192, name: Aes-kw}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 256, name: Aes-kw}, false, [wrapKey]) >-PASS Success: generateKey({length: 256, name: Aes-kw}, true, [wrapKey]) >-PASS Success: generateKey({length: 256, name: Aes-kw}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 256, name: Aes-kw}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({length: 256, name: Aes-kw}, false, [unwrapKey]) >-PASS Success: generateKey({length: 256, name: Aes-kw}, true, [unwrapKey]) >-PASS Success: generateKey({length: 256, name: Aes-kw}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) >-PASS Success: generateKey({length: 256, name: Aes-kw}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_AES-KW.https.html b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_AES-KW.https.html >deleted file mode 100644 >index 9beab20834660d775d6cd9982700f7da169a3566..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_AES-KW.https.html >+++ /dev/null >@@ -1,23 +0,0 @@ >-<!DOCTYPE html> >-<meta charset=utf-8> >-<meta name="timeout" content="long"> >-<title>WebCryptoAPI: generateKey() Successful Calls</title> >-<link rel="author" title="Charles Engelke" href="mailto:w3c@engelke.com"> >-<link rel="help" href="https://www.w3.org/TR/WebCryptoAPI/#dfn-SubtleCrypto-method-generateKey"> >-<script src="/resources/testharness.js"></script> >-<script src="/resources/testharnessreport.js"></script> >- >-<script src="/WebCryptoAPI/util/helpers.js"></script> >-<script src="successes.js"></script> >- >-<h1>generateKey Tests for Good Parameters</h1> >-<p> >- <strong>Warning!</strong> RSA key generation is intrinsically >- very slow, so the related tests can take up to >- several minutes to complete, depending on browser! >-</p> >- >-<div id="log"></div> >-<script> >-run_test(["AES-KW"]); >-</script> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_ECDH-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_ECDH-expected.txt >deleted file mode 100644 >index 08703dacfa43e2df271b708c2932976f9f70fb7a..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_ECDH-expected.txt >+++ /dev/null >@@ -1,78 +0,0 @@ >-generateKey Tests for Good Parameters >- >-Warning! RSA key generation is intrinsically very slow, so the related tests can take up to several minutes to complete, depending on browser! >- >- >-PASS Success: generateKey({name: ECDH, namedCurve: P-256}, false, [deriveKey]) >-PASS Success: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey]) >-PASS Success: generateKey({name: ECDH, namedCurve: P-256}, false, [deriveBits, deriveKey]) >-PASS Success: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, deriveKey]) >-PASS Success: generateKey({name: ECDH, namedCurve: P-256}, false, [deriveBits]) >-PASS Success: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits]) >-PASS Success: generateKey({name: ECDH, namedCurve: P-256}, false, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) >-PASS Success: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) >-PASS Success: generateKey({name: ECDH, namedCurve: P-384}, false, [deriveKey]) >-PASS Success: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey]) >-PASS Success: generateKey({name: ECDH, namedCurve: P-384}, false, [deriveBits, deriveKey]) >-PASS Success: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, deriveKey]) >-PASS Success: generateKey({name: ECDH, namedCurve: P-384}, false, [deriveBits]) >-PASS Success: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits]) >-PASS Success: generateKey({name: ECDH, namedCurve: P-384}, false, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) >-PASS Success: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) >-FAIL Success: generateKey({name: ECDH, namedCurve: P-521}, false, [deriveKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The algorithm is not supported Reached unreachable code >-FAIL Success: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The algorithm is not supported Reached unreachable code >-FAIL Success: generateKey({name: ECDH, namedCurve: P-521}, false, [deriveBits, deriveKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The algorithm is not supported Reached unreachable code >-FAIL Success: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, deriveKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The algorithm is not supported Reached unreachable code >-FAIL Success: generateKey({name: ECDH, namedCurve: P-521}, false, [deriveBits]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The algorithm is not supported Reached unreachable code >-FAIL Success: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The algorithm is not supported Reached unreachable code >-FAIL Success: generateKey({name: ECDH, namedCurve: P-521}, false, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The algorithm is not supported Reached unreachable code >-FAIL Success: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The algorithm is not supported Reached unreachable code >-PASS Success: generateKey({name: ecdh, namedCurve: P-256}, false, [deriveKey]) >-PASS Success: generateKey({name: ecdh, namedCurve: P-256}, true, [deriveKey]) >-PASS Success: generateKey({name: ecdh, namedCurve: P-256}, false, [deriveBits, deriveKey]) >-PASS Success: generateKey({name: ecdh, namedCurve: P-256}, true, [deriveBits, deriveKey]) >-PASS Success: generateKey({name: ecdh, namedCurve: P-256}, false, [deriveBits]) >-PASS Success: generateKey({name: ecdh, namedCurve: P-256}, true, [deriveBits]) >-PASS Success: generateKey({name: ecdh, namedCurve: P-256}, false, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) >-PASS Success: generateKey({name: ecdh, namedCurve: P-256}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) >-PASS Success: generateKey({name: ecdh, namedCurve: P-384}, false, [deriveKey]) >-PASS Success: generateKey({name: ecdh, namedCurve: P-384}, true, [deriveKey]) >-PASS Success: generateKey({name: ecdh, namedCurve: P-384}, false, [deriveBits, deriveKey]) >-PASS Success: generateKey({name: ecdh, namedCurve: P-384}, true, [deriveBits, deriveKey]) >-PASS Success: generateKey({name: ecdh, namedCurve: P-384}, false, [deriveBits]) >-PASS Success: generateKey({name: ecdh, namedCurve: P-384}, true, [deriveBits]) >-PASS Success: generateKey({name: ecdh, namedCurve: P-384}, false, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) >-PASS Success: generateKey({name: ecdh, namedCurve: P-384}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) >-FAIL Success: generateKey({name: ecdh, namedCurve: P-521}, false, [deriveKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The algorithm is not supported Reached unreachable code >-FAIL Success: generateKey({name: ecdh, namedCurve: P-521}, true, [deriveKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The algorithm is not supported Reached unreachable code >-FAIL Success: generateKey({name: ecdh, namedCurve: P-521}, false, [deriveBits, deriveKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The algorithm is not supported Reached unreachable code >-FAIL Success: generateKey({name: ecdh, namedCurve: P-521}, true, [deriveBits, deriveKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The algorithm is not supported Reached unreachable code >-FAIL Success: generateKey({name: ecdh, namedCurve: P-521}, false, [deriveBits]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The algorithm is not supported Reached unreachable code >-FAIL Success: generateKey({name: ecdh, namedCurve: P-521}, true, [deriveBits]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The algorithm is not supported Reached unreachable code >-FAIL Success: generateKey({name: ecdh, namedCurve: P-521}, false, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The algorithm is not supported Reached unreachable code >-FAIL Success: generateKey({name: ecdh, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The algorithm is not supported Reached unreachable code >-PASS Success: generateKey({name: Ecdh, namedCurve: P-256}, false, [deriveKey]) >-PASS Success: generateKey({name: Ecdh, namedCurve: P-256}, true, [deriveKey]) >-PASS Success: generateKey({name: Ecdh, namedCurve: P-256}, false, [deriveBits, deriveKey]) >-PASS Success: generateKey({name: Ecdh, namedCurve: P-256}, true, [deriveBits, deriveKey]) >-PASS Success: generateKey({name: Ecdh, namedCurve: P-256}, false, [deriveBits]) >-PASS Success: generateKey({name: Ecdh, namedCurve: P-256}, true, [deriveBits]) >-PASS Success: generateKey({name: Ecdh, namedCurve: P-256}, false, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) >-PASS Success: generateKey({name: Ecdh, namedCurve: P-256}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) >-PASS Success: generateKey({name: Ecdh, namedCurve: P-384}, false, [deriveKey]) >-PASS Success: generateKey({name: Ecdh, namedCurve: P-384}, true, [deriveKey]) >-PASS Success: generateKey({name: Ecdh, namedCurve: P-384}, false, [deriveBits, deriveKey]) >-PASS Success: generateKey({name: Ecdh, namedCurve: P-384}, true, [deriveBits, deriveKey]) >-PASS Success: generateKey({name: Ecdh, namedCurve: P-384}, false, [deriveBits]) >-PASS Success: generateKey({name: Ecdh, namedCurve: P-384}, true, [deriveBits]) >-PASS Success: generateKey({name: Ecdh, namedCurve: P-384}, false, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) >-PASS Success: generateKey({name: Ecdh, namedCurve: P-384}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) >-FAIL Success: generateKey({name: Ecdh, namedCurve: P-521}, false, [deriveKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The algorithm is not supported Reached unreachable code >-FAIL Success: generateKey({name: Ecdh, namedCurve: P-521}, true, [deriveKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The algorithm is not supported Reached unreachable code >-FAIL Success: generateKey({name: Ecdh, namedCurve: P-521}, false, [deriveBits, deriveKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The algorithm is not supported Reached unreachable code >-FAIL Success: generateKey({name: Ecdh, namedCurve: P-521}, true, [deriveBits, deriveKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The algorithm is not supported Reached unreachable code >-FAIL Success: generateKey({name: Ecdh, namedCurve: P-521}, false, [deriveBits]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The algorithm is not supported Reached unreachable code >-FAIL Success: generateKey({name: Ecdh, namedCurve: P-521}, true, [deriveBits]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The algorithm is not supported Reached unreachable code >-FAIL Success: generateKey({name: Ecdh, namedCurve: P-521}, false, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The algorithm is not supported Reached unreachable code >-FAIL Success: generateKey({name: Ecdh, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The algorithm is not supported Reached unreachable code >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_ECDH.https-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_ECDH.https-expected.txt >deleted file mode 100644 >index 7138a1f001fd0a41ddafeb086a148d176031fdda..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_ECDH.https-expected.txt >+++ /dev/null >@@ -1,78 +0,0 @@ >-generateKey Tests for Good Parameters >- >-Warning! RSA key generation is intrinsically very slow, so the related tests can take up to several minutes to complete, depending on browser! >- >- >-PASS Success: generateKey({name: ECDH, namedCurve: P-256}, false, [deriveKey]) >-PASS Success: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey]) >-PASS Success: generateKey({name: ECDH, namedCurve: P-256}, false, [deriveBits, deriveKey]) >-PASS Success: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, deriveKey]) >-PASS Success: generateKey({name: ECDH, namedCurve: P-256}, false, [deriveBits]) >-PASS Success: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits]) >-PASS Success: generateKey({name: ECDH, namedCurve: P-256}, false, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) >-PASS Success: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) >-PASS Success: generateKey({name: ECDH, namedCurve: P-384}, false, [deriveKey]) >-PASS Success: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey]) >-PASS Success: generateKey({name: ECDH, namedCurve: P-384}, false, [deriveBits, deriveKey]) >-PASS Success: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, deriveKey]) >-PASS Success: generateKey({name: ECDH, namedCurve: P-384}, false, [deriveBits]) >-PASS Success: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits]) >-PASS Success: generateKey({name: ECDH, namedCurve: P-384}, false, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) >-PASS Success: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) >-FAIL Success: generateKey({name: ECDH, namedCurve: P-521}, false, [deriveKey]) assert_unreached: Threw an unexpected error: NotSupportedError: The algorithm is not supported Reached unreachable code >-FAIL Success: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey]) assert_unreached: Threw an unexpected error: NotSupportedError: The algorithm is not supported Reached unreachable code >-FAIL Success: generateKey({name: ECDH, namedCurve: P-521}, false, [deriveBits, deriveKey]) assert_unreached: Threw an unexpected error: NotSupportedError: The algorithm is not supported Reached unreachable code >-FAIL Success: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, deriveKey]) assert_unreached: Threw an unexpected error: NotSupportedError: The algorithm is not supported Reached unreachable code >-FAIL Success: generateKey({name: ECDH, namedCurve: P-521}, false, [deriveBits]) assert_unreached: Threw an unexpected error: NotSupportedError: The algorithm is not supported Reached unreachable code >-FAIL Success: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits]) assert_unreached: Threw an unexpected error: NotSupportedError: The algorithm is not supported Reached unreachable code >-FAIL Success: generateKey({name: ECDH, namedCurve: P-521}, false, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) assert_unreached: Threw an unexpected error: NotSupportedError: The algorithm is not supported Reached unreachable code >-FAIL Success: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) assert_unreached: Threw an unexpected error: NotSupportedError: The algorithm is not supported Reached unreachable code >-PASS Success: generateKey({name: ecdh, namedCurve: P-256}, false, [deriveKey]) >-PASS Success: generateKey({name: ecdh, namedCurve: P-256}, true, [deriveKey]) >-PASS Success: generateKey({name: ecdh, namedCurve: P-256}, false, [deriveBits, deriveKey]) >-PASS Success: generateKey({name: ecdh, namedCurve: P-256}, true, [deriveBits, deriveKey]) >-PASS Success: generateKey({name: ecdh, namedCurve: P-256}, false, [deriveBits]) >-PASS Success: generateKey({name: ecdh, namedCurve: P-256}, true, [deriveBits]) >-PASS Success: generateKey({name: ecdh, namedCurve: P-256}, false, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) >-PASS Success: generateKey({name: ecdh, namedCurve: P-256}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) >-PASS Success: generateKey({name: ecdh, namedCurve: P-384}, false, [deriveKey]) >-PASS Success: generateKey({name: ecdh, namedCurve: P-384}, true, [deriveKey]) >-PASS Success: generateKey({name: ecdh, namedCurve: P-384}, false, [deriveBits, deriveKey]) >-PASS Success: generateKey({name: ecdh, namedCurve: P-384}, true, [deriveBits, deriveKey]) >-PASS Success: generateKey({name: ecdh, namedCurve: P-384}, false, [deriveBits]) >-PASS Success: generateKey({name: ecdh, namedCurve: P-384}, true, [deriveBits]) >-PASS Success: generateKey({name: ecdh, namedCurve: P-384}, false, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) >-PASS Success: generateKey({name: ecdh, namedCurve: P-384}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) >-FAIL Success: generateKey({name: ecdh, namedCurve: P-521}, false, [deriveKey]) assert_unreached: Threw an unexpected error: NotSupportedError: The algorithm is not supported Reached unreachable code >-FAIL Success: generateKey({name: ecdh, namedCurve: P-521}, true, [deriveKey]) assert_unreached: Threw an unexpected error: NotSupportedError: The algorithm is not supported Reached unreachable code >-FAIL Success: generateKey({name: ecdh, namedCurve: P-521}, false, [deriveBits, deriveKey]) assert_unreached: Threw an unexpected error: NotSupportedError: The algorithm is not supported Reached unreachable code >-FAIL Success: generateKey({name: ecdh, namedCurve: P-521}, true, [deriveBits, deriveKey]) assert_unreached: Threw an unexpected error: NotSupportedError: The algorithm is not supported Reached unreachable code >-FAIL Success: generateKey({name: ecdh, namedCurve: P-521}, false, [deriveBits]) assert_unreached: Threw an unexpected error: NotSupportedError: The algorithm is not supported Reached unreachable code >-FAIL Success: generateKey({name: ecdh, namedCurve: P-521}, true, [deriveBits]) assert_unreached: Threw an unexpected error: NotSupportedError: The algorithm is not supported Reached unreachable code >-FAIL Success: generateKey({name: ecdh, namedCurve: P-521}, false, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) assert_unreached: Threw an unexpected error: NotSupportedError: The algorithm is not supported Reached unreachable code >-FAIL Success: generateKey({name: ecdh, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) assert_unreached: Threw an unexpected error: NotSupportedError: The algorithm is not supported Reached unreachable code >-PASS Success: generateKey({name: Ecdh, namedCurve: P-256}, false, [deriveKey]) >-PASS Success: generateKey({name: Ecdh, namedCurve: P-256}, true, [deriveKey]) >-PASS Success: generateKey({name: Ecdh, namedCurve: P-256}, false, [deriveBits, deriveKey]) >-PASS Success: generateKey({name: Ecdh, namedCurve: P-256}, true, [deriveBits, deriveKey]) >-PASS Success: generateKey({name: Ecdh, namedCurve: P-256}, false, [deriveBits]) >-PASS Success: generateKey({name: Ecdh, namedCurve: P-256}, true, [deriveBits]) >-PASS Success: generateKey({name: Ecdh, namedCurve: P-256}, false, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) >-PASS Success: generateKey({name: Ecdh, namedCurve: P-256}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) >-PASS Success: generateKey({name: Ecdh, namedCurve: P-384}, false, [deriveKey]) >-PASS Success: generateKey({name: Ecdh, namedCurve: P-384}, true, [deriveKey]) >-PASS Success: generateKey({name: Ecdh, namedCurve: P-384}, false, [deriveBits, deriveKey]) >-PASS Success: generateKey({name: Ecdh, namedCurve: P-384}, true, [deriveBits, deriveKey]) >-PASS Success: generateKey({name: Ecdh, namedCurve: P-384}, false, [deriveBits]) >-PASS Success: generateKey({name: Ecdh, namedCurve: P-384}, true, [deriveBits]) >-PASS Success: generateKey({name: Ecdh, namedCurve: P-384}, false, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) >-PASS Success: generateKey({name: Ecdh, namedCurve: P-384}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) >-FAIL Success: generateKey({name: Ecdh, namedCurve: P-521}, false, [deriveKey]) assert_unreached: Threw an unexpected error: NotSupportedError: The algorithm is not supported Reached unreachable code >-FAIL Success: generateKey({name: Ecdh, namedCurve: P-521}, true, [deriveKey]) assert_unreached: Threw an unexpected error: NotSupportedError: The algorithm is not supported Reached unreachable code >-FAIL Success: generateKey({name: Ecdh, namedCurve: P-521}, false, [deriveBits, deriveKey]) assert_unreached: Threw an unexpected error: NotSupportedError: The algorithm is not supported Reached unreachable code >-FAIL Success: generateKey({name: Ecdh, namedCurve: P-521}, true, [deriveBits, deriveKey]) assert_unreached: Threw an unexpected error: NotSupportedError: The algorithm is not supported Reached unreachable code >-FAIL Success: generateKey({name: Ecdh, namedCurve: P-521}, false, [deriveBits]) assert_unreached: Threw an unexpected error: NotSupportedError: The algorithm is not supported Reached unreachable code >-FAIL Success: generateKey({name: Ecdh, namedCurve: P-521}, true, [deriveBits]) assert_unreached: Threw an unexpected error: NotSupportedError: The algorithm is not supported Reached unreachable code >-FAIL Success: generateKey({name: Ecdh, namedCurve: P-521}, false, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) assert_unreached: Threw an unexpected error: NotSupportedError: The algorithm is not supported Reached unreachable code >-FAIL Success: generateKey({name: Ecdh, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) assert_unreached: Threw an unexpected error: NotSupportedError: The algorithm is not supported Reached unreachable code >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_ECDH.https.html b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_ECDH.https.html >deleted file mode 100644 >index 9871f572b05c0fd040b4cc85ba964b8093728862..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_ECDH.https.html >+++ /dev/null >@@ -1,23 +0,0 @@ >-<!DOCTYPE html> >-<meta charset=utf-8> >-<meta name="timeout" content="long"> >-<title>WebCryptoAPI: generateKey() Successful Calls</title> >-<link rel="author" title="Charles Engelke" href="mailto:w3c@engelke.com"> >-<link rel="help" href="https://www.w3.org/TR/WebCryptoAPI/#dfn-SubtleCrypto-method-generateKey"> >-<script src="/resources/testharness.js"></script> >-<script src="/resources/testharnessreport.js"></script> >- >-<script src="/WebCryptoAPI/util/helpers.js"></script> >-<script src="successes.js"></script> >- >-<h1>generateKey Tests for Good Parameters</h1> >-<p> >- <strong>Warning!</strong> RSA key generation is intrinsically >- very slow, so the related tests can take up to >- several minutes to complete, depending on browser! >-</p> >- >-<div id="log"></div> >-<script> >-run_test(["ECDH"]); >-</script> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_ECDSA.https-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_ECDSA.https-expected.txt >deleted file mode 100644 >index 998c81dedc0b4e86fcddc9e00eafcc6099958492..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_ECDSA.https-expected.txt >+++ /dev/null >@@ -1,60 +0,0 @@ >-generateKey Tests for Good Parameters >- >-Warning! RSA key generation is intrinsically very slow, so the related tests can take up to several minutes to complete, depending on browser! >- >- >-PASS Success: generateKey({name: ECDSA, namedCurve: P-256}, false, [sign]) >-PASS Success: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign]) >-PASS Success: generateKey({name: ECDSA, namedCurve: P-256}, false, [verify, sign]) >-PASS Success: generateKey({name: ECDSA, namedCurve: P-256}, true, [verify, sign]) >-PASS Success: generateKey({name: ECDSA, namedCurve: P-256}, false, [sign, verify, sign, sign, verify]) >-PASS Success: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, verify, sign, sign, verify]) >-PASS Success: generateKey({name: ECDSA, namedCurve: P-384}, false, [sign]) >-PASS Success: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign]) >-PASS Success: generateKey({name: ECDSA, namedCurve: P-384}, false, [verify, sign]) >-PASS Success: generateKey({name: ECDSA, namedCurve: P-384}, true, [verify, sign]) >-PASS Success: generateKey({name: ECDSA, namedCurve: P-384}, false, [sign, verify, sign, sign, verify]) >-PASS Success: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, verify, sign, sign, verify]) >-FAIL Success: generateKey({name: ECDSA, namedCurve: P-521}, false, [sign]) assert_unreached: Threw an unexpected error: NotSupportedError: The algorithm is not supported Reached unreachable code >-FAIL Success: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign]) assert_unreached: Threw an unexpected error: NotSupportedError: The algorithm is not supported Reached unreachable code >-FAIL Success: generateKey({name: ECDSA, namedCurve: P-521}, false, [verify, sign]) assert_unreached: Threw an unexpected error: NotSupportedError: The algorithm is not supported Reached unreachable code >-FAIL Success: generateKey({name: ECDSA, namedCurve: P-521}, true, [verify, sign]) assert_unreached: Threw an unexpected error: NotSupportedError: The algorithm is not supported Reached unreachable code >-FAIL Success: generateKey({name: ECDSA, namedCurve: P-521}, false, [sign, verify, sign, sign, verify]) assert_unreached: Threw an unexpected error: NotSupportedError: The algorithm is not supported Reached unreachable code >-FAIL Success: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, verify, sign, sign, verify]) assert_unreached: Threw an unexpected error: NotSupportedError: The algorithm is not supported Reached unreachable code >-PASS Success: generateKey({name: ecdsa, namedCurve: P-256}, false, [sign]) >-PASS Success: generateKey({name: ecdsa, namedCurve: P-256}, true, [sign]) >-PASS Success: generateKey({name: ecdsa, namedCurve: P-256}, false, [verify, sign]) >-PASS Success: generateKey({name: ecdsa, namedCurve: P-256}, true, [verify, sign]) >-PASS Success: generateKey({name: ecdsa, namedCurve: P-256}, false, [sign, verify, sign, sign, verify]) >-PASS Success: generateKey({name: ecdsa, namedCurve: P-256}, true, [sign, verify, sign, sign, verify]) >-PASS Success: generateKey({name: ecdsa, namedCurve: P-384}, false, [sign]) >-PASS Success: generateKey({name: ecdsa, namedCurve: P-384}, true, [sign]) >-PASS Success: generateKey({name: ecdsa, namedCurve: P-384}, false, [verify, sign]) >-PASS Success: generateKey({name: ecdsa, namedCurve: P-384}, true, [verify, sign]) >-PASS Success: generateKey({name: ecdsa, namedCurve: P-384}, false, [sign, verify, sign, sign, verify]) >-PASS Success: generateKey({name: ecdsa, namedCurve: P-384}, true, [sign, verify, sign, sign, verify]) >-FAIL Success: generateKey({name: ecdsa, namedCurve: P-521}, false, [sign]) assert_unreached: Threw an unexpected error: NotSupportedError: The algorithm is not supported Reached unreachable code >-FAIL Success: generateKey({name: ecdsa, namedCurve: P-521}, true, [sign]) assert_unreached: Threw an unexpected error: NotSupportedError: The algorithm is not supported Reached unreachable code >-FAIL Success: generateKey({name: ecdsa, namedCurve: P-521}, false, [verify, sign]) assert_unreached: Threw an unexpected error: NotSupportedError: The algorithm is not supported Reached unreachable code >-FAIL Success: generateKey({name: ecdsa, namedCurve: P-521}, true, [verify, sign]) assert_unreached: Threw an unexpected error: NotSupportedError: The algorithm is not supported Reached unreachable code >-FAIL Success: generateKey({name: ecdsa, namedCurve: P-521}, false, [sign, verify, sign, sign, verify]) assert_unreached: Threw an unexpected error: NotSupportedError: The algorithm is not supported Reached unreachable code >-FAIL Success: generateKey({name: ecdsa, namedCurve: P-521}, true, [sign, verify, sign, sign, verify]) assert_unreached: Threw an unexpected error: NotSupportedError: The algorithm is not supported Reached unreachable code >-PASS Success: generateKey({name: Ecdsa, namedCurve: P-256}, false, [sign]) >-PASS Success: generateKey({name: Ecdsa, namedCurve: P-256}, true, [sign]) >-PASS Success: generateKey({name: Ecdsa, namedCurve: P-256}, false, [verify, sign]) >-PASS Success: generateKey({name: Ecdsa, namedCurve: P-256}, true, [verify, sign]) >-PASS Success: generateKey({name: Ecdsa, namedCurve: P-256}, false, [sign, verify, sign, sign, verify]) >-PASS Success: generateKey({name: Ecdsa, namedCurve: P-256}, true, [sign, verify, sign, sign, verify]) >-PASS Success: generateKey({name: Ecdsa, namedCurve: P-384}, false, [sign]) >-PASS Success: generateKey({name: Ecdsa, namedCurve: P-384}, true, [sign]) >-PASS Success: generateKey({name: Ecdsa, namedCurve: P-384}, false, [verify, sign]) >-PASS Success: generateKey({name: Ecdsa, namedCurve: P-384}, true, [verify, sign]) >-PASS Success: generateKey({name: Ecdsa, namedCurve: P-384}, false, [sign, verify, sign, sign, verify]) >-PASS Success: generateKey({name: Ecdsa, namedCurve: P-384}, true, [sign, verify, sign, sign, verify]) >-FAIL Success: generateKey({name: Ecdsa, namedCurve: P-521}, false, [sign]) assert_unreached: Threw an unexpected error: NotSupportedError: The algorithm is not supported Reached unreachable code >-FAIL Success: generateKey({name: Ecdsa, namedCurve: P-521}, true, [sign]) assert_unreached: Threw an unexpected error: NotSupportedError: The algorithm is not supported Reached unreachable code >-FAIL Success: generateKey({name: Ecdsa, namedCurve: P-521}, false, [verify, sign]) assert_unreached: Threw an unexpected error: NotSupportedError: The algorithm is not supported Reached unreachable code >-FAIL Success: generateKey({name: Ecdsa, namedCurve: P-521}, true, [verify, sign]) assert_unreached: Threw an unexpected error: NotSupportedError: The algorithm is not supported Reached unreachable code >-FAIL Success: generateKey({name: Ecdsa, namedCurve: P-521}, false, [sign, verify, sign, sign, verify]) assert_unreached: Threw an unexpected error: NotSupportedError: The algorithm is not supported Reached unreachable code >-FAIL Success: generateKey({name: Ecdsa, namedCurve: P-521}, true, [sign, verify, sign, sign, verify]) assert_unreached: Threw an unexpected error: NotSupportedError: The algorithm is not supported Reached unreachable code >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_ECDSA.https.html b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_ECDSA.https.html >deleted file mode 100644 >index f32a556bb24ac6b37aa6353f9bf5c8e474683595..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_ECDSA.https.html >+++ /dev/null >@@ -1,23 +0,0 @@ >-<!DOCTYPE html> >-<meta charset=utf-8> >-<meta name="timeout" content="long"> >-<title>WebCryptoAPI: generateKey() Successful Calls</title> >-<link rel="author" title="Charles Engelke" href="mailto:w3c@engelke.com"> >-<link rel="help" href="https://www.w3.org/TR/WebCryptoAPI/#dfn-SubtleCrypto-method-generateKey"> >-<script src="/resources/testharness.js"></script> >-<script src="/resources/testharnessreport.js"></script> >- >-<script src="/WebCryptoAPI/util/helpers.js"></script> >-<script src="successes.js"></script> >- >-<h1>generateKey Tests for Good Parameters</h1> >-<p> >- <strong>Warning!</strong> RSA key generation is intrinsically >- very slow, so the related tests can take up to >- several minutes to complete, depending on browser! >-</p> >- >-<div id="log"></div> >-<script> >-run_test(["ECDSA"]); >-</script> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_HMAC.https-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_HMAC.https-expected.txt >deleted file mode 100644 >index 66e9c82c3bbecdb166857a98623fba5f3413aafd..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_HMAC.https-expected.txt >+++ /dev/null >@@ -1,102 +0,0 @@ >-generateKey Tests for Good Parameters >- >-Warning! RSA key generation is intrinsically very slow, so the related tests can take up to several minutes to complete, depending on browser! >- >- >-PASS Success: generateKey({hash: SHA-1, length: 160, name: HMAC}, false, [sign]) >-PASS Success: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign]) >-PASS Success: generateKey({hash: SHA-1, length: 160, name: HMAC}, false, [verify, sign]) >-PASS Success: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, sign]) >-PASS Success: generateKey({hash: SHA-1, length: 160, name: HMAC}, false, [verify]) >-PASS Success: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify]) >-PASS Success: generateKey({hash: SHA-1, length: 160, name: HMAC}, false, [sign, verify, sign, verify]) >-PASS Success: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, verify, sign, verify]) >-PASS Success: generateKey({hash: SHA-256, length: 256, name: HMAC}, false, [sign]) >-PASS Success: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign]) >-PASS Success: generateKey({hash: SHA-256, length: 256, name: HMAC}, false, [verify, sign]) >-PASS Success: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, sign]) >-PASS Success: generateKey({hash: SHA-256, length: 256, name: HMAC}, false, [verify]) >-PASS Success: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify]) >-PASS Success: generateKey({hash: SHA-256, length: 256, name: HMAC}, false, [sign, verify, sign, verify]) >-PASS Success: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, verify, sign, verify]) >-PASS Success: generateKey({hash: SHA-384, length: 384, name: HMAC}, false, [sign]) >-PASS Success: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign]) >-PASS Success: generateKey({hash: SHA-384, length: 384, name: HMAC}, false, [verify, sign]) >-PASS Success: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, sign]) >-PASS Success: generateKey({hash: SHA-384, length: 384, name: HMAC}, false, [verify]) >-PASS Success: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify]) >-PASS Success: generateKey({hash: SHA-384, length: 384, name: HMAC}, false, [sign, verify, sign, verify]) >-PASS Success: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, verify, sign, verify]) >-PASS Success: generateKey({hash: SHA-512, length: 512, name: HMAC}, false, [sign]) >-PASS Success: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign]) >-PASS Success: generateKey({hash: SHA-512, length: 512, name: HMAC}, false, [verify, sign]) >-PASS Success: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, sign]) >-PASS Success: generateKey({hash: SHA-512, length: 512, name: HMAC}, false, [verify]) >-PASS Success: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify]) >-PASS Success: generateKey({hash: SHA-512, length: 512, name: HMAC}, false, [sign, verify, sign, verify]) >-PASS Success: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, verify, sign, verify]) >-PASS Success: generateKey({hash: SHA-1, length: 160, name: hmac}, false, [sign]) >-PASS Success: generateKey({hash: SHA-1, length: 160, name: hmac}, true, [sign]) >-PASS Success: generateKey({hash: SHA-1, length: 160, name: hmac}, false, [verify, sign]) >-PASS Success: generateKey({hash: SHA-1, length: 160, name: hmac}, true, [verify, sign]) >-PASS Success: generateKey({hash: SHA-1, length: 160, name: hmac}, false, [verify]) >-PASS Success: generateKey({hash: SHA-1, length: 160, name: hmac}, true, [verify]) >-PASS Success: generateKey({hash: SHA-1, length: 160, name: hmac}, false, [sign, verify, sign, verify]) >-PASS Success: generateKey({hash: SHA-1, length: 160, name: hmac}, true, [sign, verify, sign, verify]) >-PASS Success: generateKey({hash: SHA-256, length: 256, name: hmac}, false, [sign]) >-PASS Success: generateKey({hash: SHA-256, length: 256, name: hmac}, true, [sign]) >-PASS Success: generateKey({hash: SHA-256, length: 256, name: hmac}, false, [verify, sign]) >-PASS Success: generateKey({hash: SHA-256, length: 256, name: hmac}, true, [verify, sign]) >-PASS Success: generateKey({hash: SHA-256, length: 256, name: hmac}, false, [verify]) >-PASS Success: generateKey({hash: SHA-256, length: 256, name: hmac}, true, [verify]) >-PASS Success: generateKey({hash: SHA-256, length: 256, name: hmac}, false, [sign, verify, sign, verify]) >-PASS Success: generateKey({hash: SHA-256, length: 256, name: hmac}, true, [sign, verify, sign, verify]) >-PASS Success: generateKey({hash: SHA-384, length: 384, name: hmac}, false, [sign]) >-PASS Success: generateKey({hash: SHA-384, length: 384, name: hmac}, true, [sign]) >-PASS Success: generateKey({hash: SHA-384, length: 384, name: hmac}, false, [verify, sign]) >-PASS Success: generateKey({hash: SHA-384, length: 384, name: hmac}, true, [verify, sign]) >-PASS Success: generateKey({hash: SHA-384, length: 384, name: hmac}, false, [verify]) >-PASS Success: generateKey({hash: SHA-384, length: 384, name: hmac}, true, [verify]) >-PASS Success: generateKey({hash: SHA-384, length: 384, name: hmac}, false, [sign, verify, sign, verify]) >-PASS Success: generateKey({hash: SHA-384, length: 384, name: hmac}, true, [sign, verify, sign, verify]) >-PASS Success: generateKey({hash: SHA-512, length: 512, name: hmac}, false, [sign]) >-PASS Success: generateKey({hash: SHA-512, length: 512, name: hmac}, true, [sign]) >-PASS Success: generateKey({hash: SHA-512, length: 512, name: hmac}, false, [verify, sign]) >-PASS Success: generateKey({hash: SHA-512, length: 512, name: hmac}, true, [verify, sign]) >-PASS Success: generateKey({hash: SHA-512, length: 512, name: hmac}, false, [verify]) >-PASS Success: generateKey({hash: SHA-512, length: 512, name: hmac}, true, [verify]) >-PASS Success: generateKey({hash: SHA-512, length: 512, name: hmac}, false, [sign, verify, sign, verify]) >-PASS Success: generateKey({hash: SHA-512, length: 512, name: hmac}, true, [sign, verify, sign, verify]) >-PASS Success: generateKey({hash: SHA-1, length: 160, name: Hmac}, false, [sign]) >-PASS Success: generateKey({hash: SHA-1, length: 160, name: Hmac}, true, [sign]) >-PASS Success: generateKey({hash: SHA-1, length: 160, name: Hmac}, false, [verify, sign]) >-PASS Success: generateKey({hash: SHA-1, length: 160, name: Hmac}, true, [verify, sign]) >-PASS Success: generateKey({hash: SHA-1, length: 160, name: Hmac}, false, [verify]) >-PASS Success: generateKey({hash: SHA-1, length: 160, name: Hmac}, true, [verify]) >-PASS Success: generateKey({hash: SHA-1, length: 160, name: Hmac}, false, [sign, verify, sign, verify]) >-PASS Success: generateKey({hash: SHA-1, length: 160, name: Hmac}, true, [sign, verify, sign, verify]) >-PASS Success: generateKey({hash: SHA-256, length: 256, name: Hmac}, false, [sign]) >-PASS Success: generateKey({hash: SHA-256, length: 256, name: Hmac}, true, [sign]) >-PASS Success: generateKey({hash: SHA-256, length: 256, name: Hmac}, false, [verify, sign]) >-PASS Success: generateKey({hash: SHA-256, length: 256, name: Hmac}, true, [verify, sign]) >-PASS Success: generateKey({hash: SHA-256, length: 256, name: Hmac}, false, [verify]) >-PASS Success: generateKey({hash: SHA-256, length: 256, name: Hmac}, true, [verify]) >-PASS Success: generateKey({hash: SHA-256, length: 256, name: Hmac}, false, [sign, verify, sign, verify]) >-PASS Success: generateKey({hash: SHA-256, length: 256, name: Hmac}, true, [sign, verify, sign, verify]) >-PASS Success: generateKey({hash: SHA-384, length: 384, name: Hmac}, false, [sign]) >-PASS Success: generateKey({hash: SHA-384, length: 384, name: Hmac}, true, [sign]) >-PASS Success: generateKey({hash: SHA-384, length: 384, name: Hmac}, false, [verify, sign]) >-PASS Success: generateKey({hash: SHA-384, length: 384, name: Hmac}, true, [verify, sign]) >-PASS Success: generateKey({hash: SHA-384, length: 384, name: Hmac}, false, [verify]) >-PASS Success: generateKey({hash: SHA-384, length: 384, name: Hmac}, true, [verify]) >-PASS Success: generateKey({hash: SHA-384, length: 384, name: Hmac}, false, [sign, verify, sign, verify]) >-PASS Success: generateKey({hash: SHA-384, length: 384, name: Hmac}, true, [sign, verify, sign, verify]) >-PASS Success: generateKey({hash: SHA-512, length: 512, name: Hmac}, false, [sign]) >-PASS Success: generateKey({hash: SHA-512, length: 512, name: Hmac}, true, [sign]) >-PASS Success: generateKey({hash: SHA-512, length: 512, name: Hmac}, false, [verify, sign]) >-PASS Success: generateKey({hash: SHA-512, length: 512, name: Hmac}, true, [verify, sign]) >-PASS Success: generateKey({hash: SHA-512, length: 512, name: Hmac}, false, [verify]) >-PASS Success: generateKey({hash: SHA-512, length: 512, name: Hmac}, true, [verify]) >-PASS Success: generateKey({hash: SHA-512, length: 512, name: Hmac}, false, [sign, verify, sign, verify]) >-PASS Success: generateKey({hash: SHA-512, length: 512, name: Hmac}, true, [sign, verify, sign, verify]) >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_HMAC.https.html b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_HMAC.https.html >deleted file mode 100644 >index 819b35df08c5185104fc8284cd915c9d91a5ba26..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_HMAC.https.html >+++ /dev/null >@@ -1,23 +0,0 @@ >-<!DOCTYPE html> >-<meta charset=utf-8> >-<meta name="timeout" content="long"> >-<title>WebCryptoAPI: generateKey() Successful Calls</title> >-<link rel="author" title="Charles Engelke" href="mailto:w3c@engelke.com"> >-<link rel="help" href="https://www.w3.org/TR/WebCryptoAPI/#dfn-SubtleCrypto-method-generateKey"> >-<script src="/resources/testharness.js"></script> >-<script src="/resources/testharnessreport.js"></script> >- >-<script src="/WebCryptoAPI/util/helpers.js"></script> >-<script src="successes.js"></script> >- >-<h1>generateKey Tests for Good Parameters</h1> >-<p> >- <strong>Warning!</strong> RSA key generation is intrinsically >- very slow, so the related tests can take up to >- several minutes to complete, depending on browser! >-</p> >- >-<div id="log"></div> >-<script> >-run_test(["HMAC"]); >-</script> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_RSA-OAEP.https-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_RSA-OAEP.https-expected.txt >deleted file mode 100644 >index 4abad5cbb953cede0e4b0f6169ac5039517cb892..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_RSA-OAEP.https-expected.txt >+++ /dev/null >@@ -1,162 +0,0 @@ >-generateKey Tests for Good Parameters >- >-Warning! RSA key generation is intrinsically very slow, so the related tests can take up to several minutes to complete, depending on browser! >- >- >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, encrypt]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, encrypt]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, encrypt]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, encrypt]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [wrapKey, decrypt]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, decrypt]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, encrypt]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, encrypt]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, encrypt]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, encrypt]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [wrapKey, decrypt]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, decrypt]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, encrypt]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, encrypt]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, encrypt]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, encrypt]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [wrapKey, decrypt]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, decrypt]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, encrypt]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, encrypt]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, encrypt]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, encrypt]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [wrapKey, decrypt]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, decrypt]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, encrypt]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, encrypt]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, encrypt]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, encrypt]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [wrapKey, decrypt]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, decrypt]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, encrypt]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, encrypt]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, encrypt]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, encrypt]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, encrypt]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, encrypt]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, encrypt]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [wrapKey, decrypt]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, decrypt]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_RSA-OAEP.https.html b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_RSA-OAEP.https.html >deleted file mode 100644 >index db58fd6690ab4884525af6918e53392ff9326e6d..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_RSA-OAEP.https.html >+++ /dev/null >@@ -1,23 +0,0 @@ >-<!DOCTYPE html> >-<meta charset=utf-8> >-<meta name="timeout" content="long"> >-<title>WebCryptoAPI: generateKey() Successful Calls</title> >-<link rel="author" title="Charles Engelke" href="mailto:w3c@engelke.com"> >-<link rel="help" href="https://www.w3.org/TR/WebCryptoAPI/#dfn-SubtleCrypto-method-generateKey"> >-<script src="/resources/testharness.js"></script> >-<script src="/resources/testharnessreport.js"></script> >- >-<script src="/WebCryptoAPI/util/helpers.js"></script> >-<script src="successes.js"></script> >- >-<h1>generateKey Tests for Good Parameters</h1> >-<p> >- <strong>Warning!</strong> RSA key generation is intrinsically >- very slow, so the related tests can take up to >- several minutes to complete, depending on browser! >-</p> >- >-<div id="log"></div> >-<script> >-run_test(["RSA-OAEP"]); >-</script> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_RSA-PSS-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_RSA-PSS-expected.txt >deleted file mode 100644 >index e02cb0683bfc271dd5531f8afd6096e56567af40..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_RSA-PSS-expected.txt >+++ /dev/null >@@ -1,42 +0,0 @@ >-generateKey Tests for Good Parameters >- >-Warning! RSA key generation is intrinsically very slow, so the related tests can take up to several minutes to complete, depending on browser! >- >- >-FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code >-FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code >-FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [verify, sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code >-FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code >-FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, verify, sign, sign, verify]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code >-FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code >-FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code >-FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code >-FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [verify, sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code >-FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code >-FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, verify, sign, sign, verify]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code >-FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code >-FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code >-FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code >-FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [verify, sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code >-FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code >-FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, verify, sign, sign, verify]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code >-FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code >-FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code >-FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code >-FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [verify, sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code >-FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code >-FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, verify, sign, sign, verify]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code >-FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code >-FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code >-FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code >-FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [verify, sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code >-FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code >-FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, verify, sign, sign, verify]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code >-FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code >-FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code >-FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code >-FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [verify, sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code >-FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code >-FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, verify, sign, sign, verify]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code >-FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_RSA-PSS.https-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_RSA-PSS.https-expected.txt >deleted file mode 100644 >index d9f9e4a26485c327c57a877404529503e06619f9..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_RSA-PSS.https-expected.txt >+++ /dev/null >@@ -1,42 +0,0 @@ >-generateKey Tests for Good Parameters >- >-Warning! RSA key generation is intrinsically very slow, so the related tests can take up to several minutes to complete, depending on browser! >- >- >-FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) assert_unreached: Threw an unexpected error: NotSupportedError: The operation is not supported. Reached unreachable code >-FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) assert_unreached: Threw an unexpected error: NotSupportedError: The operation is not supported. Reached unreachable code >-FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [verify, sign]) assert_unreached: Threw an unexpected error: NotSupportedError: The operation is not supported. Reached unreachable code >-FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign]) assert_unreached: Threw an unexpected error: NotSupportedError: The operation is not supported. Reached unreachable code >-FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, verify, sign, sign, verify]) assert_unreached: Threw an unexpected error: NotSupportedError: The operation is not supported. Reached unreachable code >-FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify]) assert_unreached: Threw an unexpected error: NotSupportedError: The operation is not supported. Reached unreachable code >-FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) assert_unreached: Threw an unexpected error: NotSupportedError: The operation is not supported. Reached unreachable code >-FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) assert_unreached: Threw an unexpected error: NotSupportedError: The operation is not supported. Reached unreachable code >-FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [verify, sign]) assert_unreached: Threw an unexpected error: NotSupportedError: The operation is not supported. Reached unreachable code >-FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign]) assert_unreached: Threw an unexpected error: NotSupportedError: The operation is not supported. Reached unreachable code >-FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, verify, sign, sign, verify]) assert_unreached: Threw an unexpected error: NotSupportedError: The operation is not supported. Reached unreachable code >-FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify]) assert_unreached: Threw an unexpected error: NotSupportedError: The operation is not supported. Reached unreachable code >-FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) assert_unreached: Threw an unexpected error: NotSupportedError: The operation is not supported. Reached unreachable code >-FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) assert_unreached: Threw an unexpected error: NotSupportedError: The operation is not supported. Reached unreachable code >-FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [verify, sign]) assert_unreached: Threw an unexpected error: NotSupportedError: The operation is not supported. Reached unreachable code >-FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign]) assert_unreached: Threw an unexpected error: NotSupportedError: The operation is not supported. Reached unreachable code >-FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, verify, sign, sign, verify]) assert_unreached: Threw an unexpected error: NotSupportedError: The operation is not supported. Reached unreachable code >-FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify]) assert_unreached: Threw an unexpected error: NotSupportedError: The operation is not supported. Reached unreachable code >-FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) assert_unreached: Threw an unexpected error: NotSupportedError: The operation is not supported. Reached unreachable code >-FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) assert_unreached: Threw an unexpected error: NotSupportedError: The operation is not supported. Reached unreachable code >-FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [verify, sign]) assert_unreached: Threw an unexpected error: NotSupportedError: The operation is not supported. Reached unreachable code >-FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign]) assert_unreached: Threw an unexpected error: NotSupportedError: The operation is not supported. Reached unreachable code >-FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, verify, sign, sign, verify]) assert_unreached: Threw an unexpected error: NotSupportedError: The operation is not supported. Reached unreachable code >-FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify]) assert_unreached: Threw an unexpected error: NotSupportedError: The operation is not supported. Reached unreachable code >-FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) assert_unreached: Threw an unexpected error: NotSupportedError: The operation is not supported. Reached unreachable code >-FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) assert_unreached: Threw an unexpected error: NotSupportedError: The operation is not supported. Reached unreachable code >-FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [verify, sign]) assert_unreached: Threw an unexpected error: NotSupportedError: The operation is not supported. Reached unreachable code >-FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign]) assert_unreached: Threw an unexpected error: NotSupportedError: The operation is not supported. Reached unreachable code >-FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, verify, sign, sign, verify]) assert_unreached: Threw an unexpected error: NotSupportedError: The operation is not supported. Reached unreachable code >-FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify]) assert_unreached: Threw an unexpected error: NotSupportedError: The operation is not supported. Reached unreachable code >-FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) assert_unreached: Threw an unexpected error: NotSupportedError: The operation is not supported. Reached unreachable code >-FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) assert_unreached: Threw an unexpected error: NotSupportedError: The operation is not supported. Reached unreachable code >-FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [verify, sign]) assert_unreached: Threw an unexpected error: NotSupportedError: The operation is not supported. Reached unreachable code >-FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign]) assert_unreached: Threw an unexpected error: NotSupportedError: The operation is not supported. Reached unreachable code >-FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, verify, sign, sign, verify]) assert_unreached: Threw an unexpected error: NotSupportedError: The operation is not supported. Reached unreachable code >-FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify]) assert_unreached: Threw an unexpected error: NotSupportedError: The operation is not supported. Reached unreachable code >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_RSA-PSS.https.html b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_RSA-PSS.https.html >deleted file mode 100644 >index d6a3c1b02d0c650aecad3f52ee62f2754512612c..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_RSA-PSS.https.html >+++ /dev/null >@@ -1,23 +0,0 @@ >-<!DOCTYPE html> >-<meta charset=utf-8> >-<meta name="timeout" content="long"> >-<title>WebCryptoAPI: generateKey() Successful Calls</title> >-<link rel="author" title="Charles Engelke" href="mailto:w3c@engelke.com"> >-<link rel="help" href="https://www.w3.org/TR/WebCryptoAPI/#dfn-SubtleCrypto-method-generateKey"> >-<script src="/resources/testharness.js"></script> >-<script src="/resources/testharnessreport.js"></script> >- >-<script src="/WebCryptoAPI/util/helpers.js"></script> >-<script src="successes.js"></script> >- >-<h1>generateKey Tests for Good Parameters</h1> >-<p> >- <strong>Warning!</strong> RSA key generation is intrinsically >- very slow, so the related tests can take up to >- several minutes to complete, depending on browser! >-</p> >- >-<div id="log"></div> >-<script> >-run_test(["RSA-PSS"]); >-</script> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_RSASSA-PKCS1-v1_5.https-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_RSASSA-PKCS1-v1_5.https-expected.txt >deleted file mode 100644 >index 07e6dc777d4b3ecc596834e9b3b0fd6c7886c0ef..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_RSASSA-PKCS1-v1_5.https-expected.txt >+++ /dev/null >@@ -1,42 +0,0 @@ >-generateKey Tests for Good Parameters >- >-Warning! RSA key generation is intrinsically very slow, so the related tests can take up to several minutes to complete, depending on browser! >- >- >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-V1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-V1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-V1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [verify, sign]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-V1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-V1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, verify, sign, sign, verify]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-V1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-V1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-V1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-V1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [verify, sign]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-V1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-V1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, verify, sign, sign, verify]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-V1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [verify, sign]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, verify, sign, sign, verify]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [verify, sign]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, verify, sign, sign, verify]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [verify, sign]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, verify, sign, sign, verify]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [verify, sign]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, verify, sign, sign, verify]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify]) >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_RSASSA-PKCS1-v1_5.https.html b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_RSASSA-PKCS1-v1_5.https.html >deleted file mode 100644 >index 35678798bdf77762a771e411bcb6c5619ca47df1..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_RSASSA-PKCS1-v1_5.https.html >+++ /dev/null >@@ -1,23 +0,0 @@ >-<!DOCTYPE html> >-<meta charset=utf-8> >-<meta name="timeout" content="long"> >-<title>WebCryptoAPI: generateKey() Successful Calls</title> >-<link rel="author" title="Charles Engelke" href="mailto:w3c@engelke.com"> >-<link rel="help" href="https://www.w3.org/TR/WebCryptoAPI/#dfn-SubtleCrypto-method-generateKey"> >-<script src="/resources/testharness.js"></script> >-<script src="/resources/testharnessreport.js"></script> >- >-<script src="/WebCryptoAPI/util/helpers.js"></script> >-<script src="successes.js"></script> >- >-<h1>generateKey Tests for Good Parameters</h1> >-<p> >- <strong>Warning!</strong> RSA key generation is intrinsically >- very slow, so the related tests can take up to >- several minutes to complete, depending on browser! >-</p> >- >-<div id="log"></div> >-<script> >-run_test(["RSASSA-PKCS1-v1_5"]); >-</script> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/w3c-import.log b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/w3c-import.log >index c78228a7490826e002f2ac5f1b2a2e3f49a2b100..6d42c6bad61a26dc0ae9b4e20f961cb9123c16ec 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/w3c-import.log >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/w3c-import.log >@@ -15,46 +15,24 @@ None > ------------------------------------------------------------------------ > List of files: > /LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures.js >-/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-CBC.https.worker.js >-/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-CTR.https.worker.js >-/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-GCM.https.worker.js >-/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-KW.https.worker.js >-/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_ECDH.https.worker.js >-/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_ECDSA.https.worker.js >-/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_HMAC.https.worker.js >-/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-OAEP.https.worker.js >-/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-PSS.https.worker.js >-/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSASSA-PKCS1-v1_5.https.worker.js >+/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-CBC.https.any.js >+/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-CTR.https.any.js >+/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-GCM.https.any.js >+/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-KW.https.any.js >+/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_ECDH.https.any.js >+/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_ECDSA.https.any.js >+/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_HMAC.https.any.js >+/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-OAEP.https.any.js >+/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-PSS.https.any.js >+/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSASSA-PKCS1-v1_5.https.any.js > /LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes.js >-/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-CBC.https.worker.js >-/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-CTR.https.worker.js >-/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-GCM.https.worker.js >-/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-KW.https.worker.js >-/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_ECDH.https.worker.js >-/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_ECDSA.https.worker.js >-/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_HMAC.https.worker.js >-/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-OAEP.https.worker.js >-/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-PSS.https.worker.js >-/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSASSA-PKCS1-v1_5.https.worker.js >-/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_aes-cbc.https.html >-/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_aes-ctr.https.html >-/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_AES-CBC.https.html >-/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_AES-CTR.https.html >-/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_AES-GCM.https.html >-/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_AES-KW.https.html >-/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_ECDH.https.html >-/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_ECDSA.https.html >-/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_HMAC.https.html >-/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_RSA-OAEP.https.html >-/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_RSA-PSS.https.html >-/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_RSASSA-PKCS1-v1_5.https.html >-/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_AES-CBC.https.html >-/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_AES-CTR.https.html >-/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_AES-GCM.https.html >-/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_AES-KW.https.html >-/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_ECDH.https.html >-/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_ECDSA.https.html >-/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_HMAC.https.html >-/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_RSA-OAEP.https.html >-/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_RSA-PSS.https.html >-/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_RSASSA-PKCS1-v1_5.https.html >+/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-CBC.https.any.js >+/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-CTR.https.any.js >+/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-GCM.https.any.js >+/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-KW.https.any.js >+/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_ECDH.https.any.js >+/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_ECDSA.https.any.js >+/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_HMAC.https.any.js >+/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-OAEP.https.any.js >+/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-PSS.https.any.js >+/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSASSA-PKCS1-v1_5.https.any.js >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebIDL/ecmascript-binding/default-iterator-object-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/WebIDL/ecmascript-binding/default-iterator-object-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..f13d3be0ee02768f3123f06d67505f61ce661441 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebIDL/ecmascript-binding/default-iterator-object-expected.txt >@@ -0,0 +1,5 @@ >+ >+PASS Default iterator objects for an interface have the same prototype >+PASS Object.prototype.toString returns correct value >+FAIL @@toStringTag has correct value from prototype assert_equals: expected (string) "URLSearchParams Iterator" but got (undefined) undefined >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebIDL/ecmascript-binding/default-iterator-object.html b/LayoutTests/imported/w3c/web-platform-tests/WebIDL/ecmascript-binding/default-iterator-object.html >new file mode 100644 >index 0000000000000000000000000000000000000000..c7e9188521a2ae0bc9f15ff9bcaefc55a5253ce2 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebIDL/ecmascript-binding/default-iterator-object.html >@@ -0,0 +1,27 @@ >+<!doctype html> >+<meta charset="utf-8"> >+<title>Default iterator objects</title> >+<script src="/resources/testharness.js"></script> >+<script src="/resources/testharnessreport.js"></script> >+<script> >+test(() => { >+ const iterator1 = new URLSearchParams()[Symbol.iterator](); >+ const iterator2 = new URLSearchParams().keys(); >+ const iterator3 = new URLSearchParams().values(); >+ const iterator4 = new URLSearchParams().entries(); >+ assert_equals(Object.getPrototypeOf(iterator1), Object.getPrototypeOf(iterator2)); >+ assert_equals(Object.getPrototypeOf(iterator1), Object.getPrototypeOf(iterator3)); >+ assert_equals(Object.getPrototypeOf(iterator1), Object.getPrototypeOf(iterator4)); >+}, "Default iterator objects for an interface have the same prototype"); >+ >+test(() => { >+ const iterator = new URLSearchParams().entries(); >+ assert_equals(Object.prototype.toString.call(iterator), "[object URLSearchParams Iterator]"); >+}, "Object.prototype.toString returns correct value"); >+ >+test(() => { >+ const iterator = new URLSearchParams().entries(); >+ assert_equals(iterator[Symbol.toStringTag], "URLSearchParams Iterator"); >+ assert_equals(Object.getOwnPropertyDescriptor(iterator, Symbol.toStringTag), undefined); >+}, "@@toStringTag has correct value from prototype"); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebIDL/ecmascript-binding/iterator-prototype-object-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/WebIDL/ecmascript-binding/iterator-prototype-object-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..7f321fbfc29e538dc4d00fb8f20d00f29cd1c3c5 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebIDL/ecmascript-binding/iterator-prototype-object-expected.txt >@@ -0,0 +1,8 @@ >+ >+PASS Has %IteratorPrototype% as prototype >+PASS next() exists and is writable, enumerable, and configurable >+PASS next() throws TypeError when called on ineligible receiver >+PASS Object.prototype.toString returns correct value >+FAIL @@toStringTag has correct value undefined is not an object (evaluating 'Object.getOwnPropertyDescriptor(iteratorProto, Symbol.toStringTag).value') >+PASS Is specific to an interface >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebIDL/ecmascript-binding/iterator-prototype-object.html b/LayoutTests/imported/w3c/web-platform-tests/WebIDL/ecmascript-binding/iterator-prototype-object.html >new file mode 100644 >index 0000000000000000000000000000000000000000..5a935fa20135d88a7268b872b68ab7fe548ab5c7 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebIDL/ecmascript-binding/iterator-prototype-object.html >@@ -0,0 +1,56 @@ >+<!doctype html> >+<meta charset="utf-8"> >+<title>Iterator prototype objects</title> >+<script src="/resources/testharness.js"></script> >+<script src="/resources/testharnessreport.js"></script> >+<script> >+test(() => { >+ const esIteratorPrototype = Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())); >+ const iteratorProto = Object.getPrototypeOf(new URLSearchParams().entries()); >+ assert_equals(Object.getPrototypeOf(iteratorProto), esIteratorPrototype); >+}, "Has %IteratorPrototype% as prototype"); >+ >+test(() => { >+ const iteratorProto = Object.getPrototypeOf(new URLSearchParams().entries()); >+ const desc = Object.getOwnPropertyDescriptor(iteratorProto, "next"); >+ assert_equals(typeof desc.value, "function"); >+ assert_equals(desc.writable, true); >+ assert_equals(desc.enumerable, true); >+ assert_equals(desc.configurable, true); >+}, "next() exists and is writable, enumerable, and configurable"); >+ >+test(() => { >+ const usp = new URLSearchParams(); >+ const iteratorProto = Object.getPrototypeOf(usp.entries()); >+ >+ assert_throws(new TypeError(), () => { >+ iteratorProto.next(); >+ }); >+ assert_throws(new TypeError(), () => { >+ iteratorProto.next.call(undefined); >+ }); >+ assert_throws(new TypeError(), () => { >+ iteratorProto.next.call(42); >+ }); >+ assert_throws(new TypeError(), () => { >+ iteratorProto.next.call(new Headers().entries()); >+ }); >+}, "next() throws TypeError when called on ineligible receiver"); >+ >+test(() => { >+ const iteratorProto = Object.getPrototypeOf(new URLSearchParams().entries()); >+ assert_equals(Object.prototype.toString.call(iteratorProto), "[object URLSearchParams Iterator]"); >+}, "Object.prototype.toString returns correct value"); >+ >+test(() => { >+ const iteratorProto = Object.getPrototypeOf(new URLSearchParams().entries()); >+ assert_equals(Object.getOwnPropertyDescriptor(iteratorProto, Symbol.toStringTag).value, "URLSearchParams Iterator"); >+ // Property attributes have not yet been fully spec'd. >+}, "@@toStringTag has correct value"); >+ >+test(() => { >+ const iteratorProto1 = Object.getPrototypeOf(new URLSearchParams().entries()); >+ const iteratorProto2 = Object.getPrototypeOf(new Headers().entries()); >+ assert_not_equals(iteratorProto1, iteratorProto2); >+}, "Is specific to an interface"); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebIDL/ecmascript-binding/no-regexp-special-casing.any-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/WebIDL/ecmascript-binding/no-regexp-special-casing.any-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..00dda562a881688680b43b1daba9e1725c93e4c2 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebIDL/ecmascript-binding/no-regexp-special-casing.any-expected.txt >@@ -0,0 +1,6 @@ >+ >+PASS Conversion to a dictionary works >+PASS Conversion to a sequence works >+PASS Can convert a RegExp to a USVString >+PASS Can be used as an object implementing a callback interface >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebIDL/ecmascript-binding/no-regexp-special-casing.any.html b/LayoutTests/imported/w3c/web-platform-tests/WebIDL/ecmascript-binding/no-regexp-special-casing.any.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebIDL/ecmascript-binding/no-regexp-special-casing.any.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebIDL/ecmascript-binding/no-regexp-special-casing.any.js b/LayoutTests/imported/w3c/web-platform-tests/WebIDL/ecmascript-binding/no-regexp-special-casing.any.js >new file mode 100644 >index 0000000000000000000000000000000000000000..4446dbf69c02ab466ad03fd69d6ed3924d8e84a0 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebIDL/ecmascript-binding/no-regexp-special-casing.any.js >@@ -0,0 +1,47 @@ >+"use strict"; >+// RegExps used to be special-cased in Web IDL, but that was removed in >+// https://github.com/heycam/webidl/commit/bbb2bde. These tests check that implementations no longer >+// do any such special-casing. >+ >+test(() => { >+ const regExp = new RegExp(); >+ regExp.message = "some message"; >+ >+ const errorEvent = new ErrorEvent("type", regExp); >+ >+ assert_equals(errorEvent.message, "some message"); >+}, "Conversion to a dictionary works"); >+ >+test(() => { >+ const messageChannel = new MessageChannel(); >+ const regExp = new RegExp(); >+ regExp[Symbol.iterator] = function* () { >+ yield messageChannel.port1; >+ }; >+ >+ const messageEvent = new MessageEvent("type", { ports: regExp }); >+ >+ assert_array_equals(messageEvent.ports, [messageChannel.port1]); >+}, "Conversion to a sequence works"); >+ >+promise_test(async () => { >+ const regExp = new RegExp(); >+ >+ const response = new Response(regExp); >+ >+ assert_equals(await response.text(), "/(?:)/"); >+}, "Can convert a RegExp to a USVString"); >+ >+test(() => { >+ let functionCalled = false; >+ >+ const regExp = new RegExp(); >+ regExp.handleEvent = () => { >+ functionCalled = true; >+ }; >+ >+ self.addEventListener("testevent", regExp); >+ self.dispatchEvent(new Event("testevent")); >+ >+ assert_true(functionCalled); >+}, "Can be used as an object implementing a callback interface"); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebIDL/ecmascript-binding/no-regexp-special-casing.any.worker-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/WebIDL/ecmascript-binding/no-regexp-special-casing.any.worker-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..00dda562a881688680b43b1daba9e1725c93e4c2 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebIDL/ecmascript-binding/no-regexp-special-casing.any.worker-expected.txt >@@ -0,0 +1,6 @@ >+ >+PASS Conversion to a dictionary works >+PASS Conversion to a sequence works >+PASS Can convert a RegExp to a USVString >+PASS Can be used as an object implementing a callback interface >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebIDL/ecmascript-binding/no-regexp-special-casing.any.worker.html b/LayoutTests/imported/w3c/web-platform-tests/WebIDL/ecmascript-binding/no-regexp-special-casing.any.worker.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebIDL/ecmascript-binding/no-regexp-special-casing.any.worker.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/WebIDL/ecmascript-binding/w3c-import.log b/LayoutTests/imported/w3c/web-platform-tests/WebIDL/ecmascript-binding/w3c-import.log >index f271c5ff8b58a0dd25b21056d0510fd7eace9cab..2df80d5462dbabc72362b29b68e20c91bbee5a3f 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/WebIDL/ecmascript-binding/w3c-import.log >+++ b/LayoutTests/imported/w3c/web-platform-tests/WebIDL/ecmascript-binding/w3c-import.log >@@ -14,10 +14,13 @@ Property values requiring vendor prefixes: > None > ------------------------------------------------------------------------ > List of files: >+/LayoutTests/imported/w3c/web-platform-tests/WebIDL/ecmascript-binding/default-iterator-object.html > /LayoutTests/imported/w3c/web-platform-tests/WebIDL/ecmascript-binding/has-instance.html > /LayoutTests/imported/w3c/web-platform-tests/WebIDL/ecmascript-binding/interface-object.html > /LayoutTests/imported/w3c/web-platform-tests/WebIDL/ecmascript-binding/interface-prototype-object.html >+/LayoutTests/imported/w3c/web-platform-tests/WebIDL/ecmascript-binding/iterator-prototype-object.html > /LayoutTests/imported/w3c/web-platform-tests/WebIDL/ecmascript-binding/legacy-callback-interface-object.html > /LayoutTests/imported/w3c/web-platform-tests/WebIDL/ecmascript-binding/legacy-platform-object.html >+/LayoutTests/imported/w3c/web-platform-tests/WebIDL/ecmascript-binding/no-regexp-special-casing.any.js > /LayoutTests/imported/w3c/web-platform-tests/WebIDL/ecmascript-binding/put-forwards.html > /LayoutTests/imported/w3c/web-platform-tests/WebIDL/ecmascript-binding/sequence-conversion.html >diff --git a/LayoutTests/imported/w3c/web-platform-tests/accname/OWNERS b/LayoutTests/imported/w3c/web-platform-tests/accname/OWNERS >new file mode 100644 >index 0000000000000000000000000000000000000000..2a4c47ed4df0b500dc798a3148175c923410f9c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/accname/OWNERS >@@ -0,0 +1,2 @@ >+@halindrome >+@joanmarie >diff --git a/LayoutTests/imported/w3c/web-platform-tests/accname/foo.jpg b/LayoutTests/imported/w3c/web-platform-tests/accname/foo.jpg >new file mode 100644 >index 0000000000000000000000000000000000000000..7d11a4f7cf13a9a8e9ab3f7007673670a1d4055b >GIT binary patch >literal 6735 >zcmex=<NpH&0WUXCHwH#VMur3+WcYuZ!I^=Bjg6g+m4ls~os*M;i${c)hnt&6Qb?Fz >zL{>^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<<Uft5x!pKI?*u)5A2qPyaCl5D|1TU|I >zk)n*E5y{~H0R}-1#+}R#%#2D5OoEKef{g!<Fvv47FtP$&3vw_NFfuW-u(GjpaB^`2 >z6>Jq?U}9uuW@2GxWo2Ojs;&jfGq4D<3Mm>ovIz$!vMUve7&T5@$f4}C@t|nX#SbdR >zNkvVZTw>x9l2WQ_>Kd9_CZ=ZQ7M51dF0O9w9-dyoA)#U65s^{JDXD4c8JStdC8cHM >z6_r)ZEv;?s9i3g1CQq3<ZTgIvvlcC0vUJ(<6)RV5+Pr1!w(UE1?mBe%$kAiRPn<k; >z>GGAU*RJ2VdF$b$$4{O<d;a3(tB;>PfBE|D`;VW$K>lK6V1{@L?lUxh2?G7a#KOYN >z!VdBmBU3pLGYhh?DjKp0IR>&P778mFHFAhJO<cI~Ag8i%&<D|^qKjN&DkcwAKZ3jl >z_8D;=Ya+{MaE~GUb&G+AnGqOy%z_N|3}4sQhwR#Lsb!nL&>h>edpIsDmc$#S^h{bf >zWe&T#q^$P2{SR}_|7URI_|NdctNy3auJ^)T?-wh(i(Hm?udABUrZ(~0(jz%Xw3_@F >z)EjT@Nvr3KxwW9Wd%Y^>flQOvPg#ByvzGWqz9_ipxz_Kcoo4(U*CJj0+<O&km(2}| >zRh$@ox_3^~p%)V;>^R3;bwwy|uA6`T(|D_>inMRnq-QS?7gv0<PPtd%a=zz;liZ6Q >zY*8ppJZbv=nsDCUp7eF~6PHYVbX;Z1<K(<9jWv817IkSb3~|gf|6AzvKOg@y9KZc1 >zTRQp!f7>3HkK0x!sve(a(EV-aRQG*X3yjalr0t5*+-ZJgD#zN1y-O>?-7n^ZojP>O >z<L#BFf$vl%=Wn=kr17}p@#j&35z&qclPo?wUU<j<>uQt0Gv9U;xqaUd=ql31rLm}C >z6px0%Xc`zz1EXnRG!2ZVfzdQDng&MGz-Ss6O#`E8U^ESkrh(BkFq#HN)4*sN7)=AC >MX<%rk0sH?q0c!v9bN~PV > >literal 0 >HcmV?d00001 > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/accname/test.png b/LayoutTests/imported/w3c/web-platform-tests/accname/test.png >new file mode 100644 >index 0000000000000000000000000000000000000000..85cfa35fd13f3f8a4dda61067b65297889c0b811 >GIT binary patch >literal 1913 >zcmeAS@N?(olHy`uVBq!ia0vp^l0YoM!2~25t{<ETq&N#aB8wRq_>O=u<5X=vX$A&% >zZBG}+kcwN33heiPF#Mq&7>Z`yxqE-lfx~zZPyuoX;qxQVl>c}EPys1s{r#P~<_#vw >z+Vl=+3t_X6z4reL$e{lz%r{J!-g`6EpZEbmM49#X`z@%~{{Hy?>%;%|&;MI9{&xf- >zroW*qKto9|>))4?2luZ5x*y`N|M$=Rw`Y9o%y=l0@oP5I{{qIpdF(*rh;rBei}}w^ >zHU9tgWZjgSyPiycZ=L_)$22j4u{o3R_FTsQevB_H7=dPGZzdwV{vQkfeme92_p3`* >zPJf-i`v2bfPtHtxJJ`-_<9fP=?|TN**9K6i<!$>wIPCu)4*PLB18CNyb^EW|Fnzgp >z?!G6>#}d{%t*jS4S^n2DeobR+-TfYjh%qbT-US@k;~O^y!!c4o`pN9TV&JpcFM >z`9Cjj{eS-mXapP(NE820X8u1O@&EIw&eQMKOl&+|pubUv;aLXb5og9@evF{>0Zvvx >zQ-Fv-y8riN{r{uk|F2c8zjCqj?9XZ2&d;5?bmP2fvwNqmoH+w-7IJcjv(fVqFn#?w >z67&CL^#3OdfIj{I{~z2(a0Z&!aGLe!*QdX4_We5vG%o7xiSjeYmL5O6a{r+N5Km$C >z8g8?|GJn6^_<t!E6mUnP{@t7L@58o#pZ5ckG04@p0lFXID*yg?`1jSWe-|qLAB_6H >z)%X7f?|<8p|DEXn`}Q_m4H^TdS!n8r;f|U`Oei7L^vZbd>*o2I2CPdNJYD@<);T3K >F0RXv4Uef>o > >literal 0 >HcmV?d00001 > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/accname/w3c-import.log b/LayoutTests/imported/w3c/web-platform-tests/accname/w3c-import.log >new file mode 100644 >index 0000000000000000000000000000000000000000..f436b19822701f385252491376eebdbd15bf77dd >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/accname/w3c-import.log >@@ -0,0 +1,19 @@ >+The tests in this directory were imported from the W3C repository. >+Do NOT modify these tests directly in WebKit. >+Instead, create a pull request on the WPT github: >+ https://github.com/w3c/web-platform-tests >+ >+Then run the Tools/Scripts/import-w3c-tests in WebKit to reimport >+ >+Do NOT modify or remove this file. >+ >+------------------------------------------------------------------------ >+Properties requiring vendor prefixes: >+None >+Property values requiring vendor prefixes: >+None >+------------------------------------------------------------------------ >+List of files: >+/LayoutTests/imported/w3c/web-platform-tests/accname/OWNERS >+/LayoutTests/imported/w3c/web-platform-tests/accname/foo.jpg >+/LayoutTests/imported/w3c/web-platform-tests/accname/test.png >diff --git a/LayoutTests/imported/w3c/web-platform-tests/acid/OWNERS b/LayoutTests/imported/w3c/web-platform-tests/acid/OWNERS >new file mode 100644 >index 0000000000000000000000000000000000000000..fd31fb27543a5124263c1c329e80b6ea652ca16b >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/acid/OWNERS >@@ -0,0 +1 @@ >+@Ms2ger >diff --git a/LayoutTests/imported/w3c/web-platform-tests/acid/README.md b/LayoutTests/imported/w3c/web-platform-tests/acid/README.md >new file mode 100644 >index 0000000000000000000000000000000000000000..490f272df9c743fb61c99f1e193f7d5f96fac6a6 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/acid/README.md >@@ -0,0 +1,17 @@ >+## The Acid Tests >+ >+This directory contains copies of Acid2 and Acid3, based on the >+copies hosted at [acidtests.org](http://www.acidtests.org) after they >+had ceased being maintained (per the note on that page). >+ >+Note these are not maintained here for the sake of providing any >+useful guide of interoperability or standards compliance, but rather >+for browser vendors' convenience. It would be inappropriate, >+therefore, to use them as part of a certification process. >+ >+Acid1 can be found at `css/CSS2/css1/c5526c-display-000.xht`, as it >+always formed part of the CSS1 testsuite. >+ >+The tests themselves (i.e., those at `/` of their respective >+subdomains at `acidtests.org`) are in files named test.html in their >+respective directories. >diff --git a/LayoutTests/imported/w3c/web-platform-tests/acid/acid2/404.html b/LayoutTests/imported/w3c/web-platform-tests/acid/acid2/404.html >new file mode 100644 >index 0000000000000000000000000000000000000000..a17f4ecb85ab33ffce52d20e9cc8b1c7c109b0af >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/acid/acid2/404.html >@@ -0,0 +1,2 @@ >+<style>body { background: red; }</style> >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/acid/acid2/reference.png b/LayoutTests/imported/w3c/web-platform-tests/acid/acid2/reference.png >new file mode 100644 >index 0000000000000000000000000000000000000000..7aee7609d6ade6e39ad53b04a9f61e55f3b00c76 >GIT binary patch >literal 2261 >zcmZvecT^L|7KbC!qzedn8x+GTMFL1!kN}}~hzJQ5qzY1$B7_hUP>7)g2uchVq&MjT >zA}G>U5=5FTi$JJ?6lqDQK|mhvThDRd**P<J?wR|Wx#!-0zDclyn+x*&!Uq5V1T8I0 >z><{*5-xn{(f!$G1n+5=QpIVw2A~5vj3~L+E;0aoDm2>m^PE}dWVqeG!qLa-4I$DN6 >zL?{qHJ6aAv&VbR*&;3$gE-JrXQHnk$>J@XZS|HH^NwGjkSQ+>gOs(Uy?}-;tRc)k# >zS~O{}uvXq&jW40Qw7H!Q{?4@Jz@FZaS+@RM(lIb62}I0AATp<iVxb}mIT)gx_<8wE >zJKY?N5sNT&gepdqqr~Stkam3b3$B1d<F9kZ<9-hQP!r`=bHqzvPi-5&0^#~9<w+2$ >zZ!xP>y-a7lpPu@mwpaB;ma5!3ej5iOawKwbzhwoC?nSmui*SU7#)vs)V{dc)<}VW+ >z1WZpK8jI<UC6TVFz%poedE(97YjdlP!sWVVtvVc!+JaK1`+g-D@y3WGoXnu%7_Ex~ >znUT9db#-3O=hgUfCBU;v^Bam-TwniPF}e3-?Q{fIPg9GvSovYG?@!J;P=FRZlR!0M >zwTz!Q0c&G4Pp9aUptM5S^79RmpuD_C8B`i~s^xN2uKd}@L3_~G4XWqjh4mq!vk(Ub >zz9&zz2e08kRlslGKqbVw30ivK?>-N9fX#Jr`ulCWx*tD^BpOz>7dy<a#J1nvi@e%Q >z`s5CQWY^UNy1BK?tqtGQ1oZi600rPSHk=&&E-K2dH1DjO!b0)ojrA|31!};ceb{wx >z)}X6J(FLc(GznDb%u178J6kO=#e~_Z!pnU$<#1Ggf-ua$oCgKnWgc$Yli+^)MWv~J >zbYdc~ZX_!iOt3?S1_uXwdSdSEw`xsHuJu}jVR4AZ0%>W?wO-!1LoFWBy>VL;<__et >zDY7L*d8+5QE;hf`!c}@aoJUqHV1h<b92(Zv(?E4Iw&YAav|pkamO*+=LM>jmLN(d+ >z8#-OY?b+`1i<K_ndmB816~`KTd$o~j2@|*9uD{sagN2KF_fB>F=aG#)X(0<{Do?m1 >z0C2$x`uj7n?rNV{*OEvc?uRBK!-g4Kr3xEG8`4EaTKK;0AQ^!cU-Z|T&XS{&y{~$9 >z_P*_GG4AYb4D?-ivlDQ%9UES_ie)ju5|a0=z!Jvt1g-IRrn^<rqXqp#bR!L-rzjxF >z45LfGg}u&QQ!~H3yvSgjk8eA_sDFEZVjmKqBGrWU5A#2mr(beRift9`?d>@@IMmei >ztE;ow(;i$s>PTBb-4kUMG87}V1RrrHCm)|E7nRF1aNeaABjo)KfPt;x5_-AV00063 >zfxzb@%bisP#UGNrN4D-!mtzjRnW5CN0BIm_XvpBCU0cg`QT0e|AX@e?lDZP0?VXio >z8zFnwgafNbh-!_Znf*E7%k!La>=c=~9YM?;#fb`-&AD#Mw$AT1${Ctoh=94OB~U0b >z+&$`)-0TXW<m9u!lbq|=Q=;^TF3PMg8mQNKIaacVOOXxDwOrsJCdgN>>2?rjB>0mF >z+s)0ZW|;7SPr+1XAK|!o-`6x69*4RDV@dGa$j+na-F^dR;Yb?@cj<-?*|sn^jrl$t >zT~Wxb2_i&^#8XLU);2cm#7*-0?oL?1Yu3CNlNvhC5`%^;lM8mPu5B;2i`0N3iM}H@ >zYADa95D8Pqg~~P3tqhS>HF<*QD^BieV4wgW7z&DjISqD>w|Xxw++-dB<6E;k2p>Pn >z6n3jqM23c=OJpd2SiKU8E1N2J)X>T+;4=F))v~O@ZwiO|6y)aNVT2smq?7np61^AR >z>_==rhBCOesGD>lBvMXRR!V4nQ$p20vzXAba3<9fnC#<g7_!#)$PCH?TvdKi+j`wt >zmsD_iY1xo>eLcGY6y37^`E&kd)vS<={nhfy-6EJ@)k|QgSzgbOhd(Rp>wITj6Lbz5 >z=-5RjlcQTuVOm%$5%^mc!pJR9*xEY2-MuEKTu}MqV;(6ln9ksbs7>@KGQEo*X&Ryq >zf7&v6QbJNyO>K#V*}c6lw{l(w6rrL>A|(mn8i7)f6$N^P{gFe+7%E5H;pJtYKyzc` >zS8-2d_^ToBKBKJ*M1-yd2!$~`a69v?D%JWiCI&7nC}=8k9|g?_k3~U`Cz!;>#_DGF >z2WZh~!NN?dx~C5QfzvC_UEN?QvojQ26kc1Y0Rz6*;pT0gj=#lrgTz*;qR>W_=B}<2 >zY&LszbaeHvap17o7+2RUmy{lOQu6WSw8Y3xZ6q|=f>TH5o#!f_9db%IeKt#Y{B?}= >z!%6hpo3N5idA_de^<(v@BXt23i|}v7F7?qfqOJ*KrL1cqVqq(9Fsc2+H9j{Xz2NGr >z#U-9H+zJmdJ*5vf_#e!$(h-*{Tl8G)<um_>mmf^{!5bAFBA#PU@+?(aaj|zS2a{0N >zx#S}ED%5vu(Z?CS1-<gHzmfED2346Cs{L<A7t7gr2uJZ0<<!9Fz+7?p>p@}U_N20R >zII`KV?CYJLnQXh*TD-k@kc(yhDMb@6h2iUwN=Gc|#)V{!{fi}t($*QM(vFIsR|9tx >zN=(&7{?hM?`tQzdENFKJyD*IZ=tzsJE@*t8c&J)tJ0`L|8~<-*kcm0@`*!!oniUbg >z#*#iG+rq~PKa;TNZ@iLA^77Xf_>qY)5`wPHyTV#p_=~y!YzmnOE)Czf+;|~+cHCMi >z&md&>Rr>*$zl;8vJh)8$QaP+tSn)&twpHo2q@R+3f^$%c_r?Eb`uD2{fz#y!k`Ppk >rv;5q-m*6c7dgE{6|D4^D%G5vlSW`2yTA=9Qy8^H@g_~3ux#9l{WcO5+ > >literal 0 >HcmV?d00001 > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/acid/acid2/reftest-expected.html b/LayoutTests/imported/w3c/web-platform-tests/acid/acid2/reftest-expected.html >new file mode 100644 >index 0000000000000000000000000000000000000000..66eed5ae3553c879af28cf8d4b479dac7adfd0f3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/acid/acid2/reftest-expected.html >@@ -0,0 +1,17 @@ >+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> >+<html> >+ <head> >+ <title>The Second Acid Test (Reference Rendering)</title> >+ <style type="text/css"> >+ html { margin: 0; padding: 0; border: 0; overflow: hidden; background: white; } >+ body { margin: 0; padding: 0; border: 0; } >+ h2 { margin: 0; padding: 48px 0 36px 84px; border: 0; font: 24px/24px sans-serif; color: navy; } >+ p { margin: 0; padding: 0 0 0 72px; border: 0; } >+ img { vertical-align: top; margin: 0; padding: 0; border: 0; } >+ </style> >+ </head> >+ <body> >+ <h2>Hello World!</h2> >+ <p><a href="reference.png"><img src="reference.png" alt="Follow this link to view the reference image, which should be rendered below the text "Hello World!" on the test page in the same way that this paragraph is rendered below that text on this page."></a></p> >+ </body> >+</html> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/acid/acid2/reftest.html b/LayoutTests/imported/w3c/web-platform-tests/acid/acid2/reftest.html >new file mode 100644 >index 0000000000000000000000000000000000000000..0f9b9ac023535183a534608e8df4a709ed269b11 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/acid/acid2/reftest.html >@@ -0,0 +1,15 @@ >+<!doctype html> >+<title>Acid2 reftest</title> >+<link rel="match" href="reference.html"> >+<style> >+* { >+ margin: 0; >+ padding: 0; >+ border: 0; >+} >+iframe { >+ width: 400px; >+ height: 300px; >+} >+</style> >+<iframe src="test.html#top"></iframe> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/acid/acid2/test.html b/LayoutTests/imported/w3c/web-platform-tests/acid/acid2/test.html >new file mode 100644 >index 0000000000000000000000000000000000000000..0407bac5dc45a406f4e38612521f671e8d136d47 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/acid/acid2/test.html >@@ -0,0 +1,150 @@ >+<!-- >+A guide to Acid2 was posted alongside it as part of its original announcement; this can be found at: >+https://www.webstandards.org/action/acid2/guide/ >+--> >+ >+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> >+<html> >+ <head> >+ <title>The Second Acid Test</title> >+ <style type="text/css"> >+ /* section numbers refer to CSS2.1 */ >+ >+ /* page setup */ >+ html { font: 12px sans-serif; margin: 0; padding: 0; overflow: hidden; /* hides scrollbars on viewport, see 11.1.1:3 */ background: white; color: red; } >+ body { margin: 0; padding: 0; } >+ >+ /* introduction message */ >+ .intro { font: 2em sans-serif; margin: 3.5em 2em; padding: 0.5em; border: solid thin; background: white; color: black; position: relative; z-index: 2; /* should cover the black and red bars that are fixed-positioned */ } >+ .intro * { font: inherit; margin: 0; padding: 0; } >+ .intro h1 { font-size: 1em; font-weight: bolder; margin: 0; padding: 0; } >+ .intro :link { color: blue; } >+ .intro :visited { color: purple; } >+ >+ /* picture setup */ >+ #top { margin: 100em 3em 0; padding: 2em 0 0 .5em; text-align: left; font: 2em/24px sans-serif; color: navy; white-space: pre; } /* "Hello World!" text */ >+ .picture { position: relative; border: 1em solid transparent; margin: 0 0 100em 3em; } /* containing block for face */ >+ .picture { background: red; } /* overriden by preferred stylesheet below */ >+ >+ /* top line of face (scalp): fixed positioning and min/max height/width */ >+ .picture p { position: fixed; margin: 0; padding: 0; border: 0; top: 9em; left: 11em; width: 140%; max-width: 4em; height: 8px; min-height: 1em; max-height: 2mm; /* min-height overrides max-height, see 10.7 */ background: black; border-bottom: 0.5em yellow solid; } >+ >+ /* bits that shouldn't be part of the top line (and shouldn't be visible at all): HTML parsing, "+" combinator, stacking order */ >+ .picture p.bad { border-bottom: red solid; /* shouldn't matter, because the "p + table + p" rule below should match it too, thus hiding it */ } >+ .picture p + p { background: maroon; z-index: 1; } /* shouldn't match anything */ >+ .picture p + table + p { margin-top: 3em; /* should end up under the absolutely positioned table below, and thus not be visible */ } >+ >+ /* second line of face: attribute selectors, float positioning */ >+ [class~=one].first.one { position: absolute; top: 0; margin: 36px 0 0 60px; padding: 0; border: black 2em; border-style: none solid; /* shrink wraps around float */ } >+ [class~=one][class~=first] [class=second\ two][class="second two"] { float: right; width: 48px; height: 12px; background: yellow; margin: 0; padding: 0; } /* only content of abs pos block */ >+ >+ /* third line of face: width and overflow */ >+ .forehead { margin: 4em; width: 8em; border-left: solid black 1em; border-right: solid black 1em; background: red url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4%2F58BAAT%2FAf9jgNErAAAAAElFTkSuQmCC); /* that's a 1x1 yellow pixel PNG */ } >+ .forehead * { width: 12em; line-height: 1em; } >+ >+ /* class selectors headache */ >+ .two.error.two { background: maroon; } /* shouldn't match */ >+ .forehead.error.forehead { background: red; } /* shouldn't match */ >+ [class=second two] { background: red; } /* this should be ignored (invalid selector -- grammar says it only accepts IDENTs or STRINGs) */ >+ >+ /* fourth and fifth lines of face, with eyes: paint order test (see appendix E) and fixed backgrounds */ >+ /* the two images are identical: 2-by-2 squares with the top left >+ and bottom right pixels set to yellow and the other two set to >+ transparent. Since they are offset by one pixel from each other, >+ the second one paints exactly over the transparent parts of the >+ first one, thus creating a solid yellow block. */ >+ .eyes { position: absolute; top: 5em; left: 3em; margin: 0; padding: 0; background: red; } >+ #eyes-a { height: 0; line-height: 2em; text-align: right; } /* contents should paint top-most because they're inline */ >+ #eyes-a object { display: inline; vertical-align: bottom; } >+ #eyes-a object[type] { width: 7.5em; height: 2.5em; } /* should have no effect since that object should fallback to being inline (height/width don't apply to inlines) */ >+ #eyes-a object object object { border-right: solid 1em black; padding: 0 12px 0 11px; background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAIAAAACCAIAAAD91JpzAAAABnRSTlMAAAAAAABupgeRAAAABmJLR0QA%2FwD%2FAP%2BgvaeTAAAAEUlEQVR42mP4%2F58BCv7%2FZwAAHfAD%2FabwPj4AAAAASUVORK5CYII%3D) fixed 1px 0; } >+ #eyes-b { float: left; width: 10em; height: 2em; background: fixed url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAIAAAACCAIAAAD91JpzAAAABnRSTlMAAAAAAABupgeRAAAABmJLR0QA%2FwD%2FAP%2BgvaeTAAAAEUlEQVR42mP4%2F58BCv7%2FZwAAHfAD%2FabwPj4AAAAASUVORK5CYII%3D); border-left: solid 1em black; border-right: solid 1em red; } /* should paint in the middle layer because it is a float */ >+ #eyes-c { display: block; background: red; border-left: 2em solid yellow; width: 10em; height: 2em; } /* should paint bottom most because it is a block */ >+ >+ /* lines six to nine, with nose: auto margins */ >+ .nose { float: left; margin: -2em 2em -1em; border: solid 1em black; border-top: 0; min-height: 80%; height: 60%; max-height: 3em; /* percentages become auto (see 10.5 and 10.7) and intrinsic height is more than 3em, so 3em wins */ padding: 0; width: 12em; } >+ .nose > div { padding: 1em 1em 3em; height: 0; background: yellow; } >+ .nose div div { width: 2em; height: 2em; background: red; margin: auto; } >+ .nose :hover div { border-color: blue; } >+ .nose div:hover :before { border-bottom-color: inherit; } >+ .nose div:hover :after { border-top-color: inherit; } >+ .nose div div:before { display: block; border-style: none solid solid; border-color: red yellow black yellow; border-width: 1em; content: ''; height: 0; } >+ .nose div :after { display: block; border-style: solid solid none; border-color: black yellow red yellow; border-width: 1em; content: ''; height: 0; } >+ >+ /* between lines nine and ten: margin collapsing with 'float' and 'clear' */ >+ .empty { margin: 6.25em; height: 10%; /* computes to auto which makes it empty per 8.3.1:7 (own margins) */ } >+ .empty div { margin: 0 2em -6em 4em; } >+ .smile { margin: 5em 3em; clear: both; /* clearance is negative (see 8.3.1 and 9.5.1) */ } >+ >+ /* line ten and eleven: containing block for abs pos */ >+ .smile div { margin-top: 0.25em; background: black; width: 12em; height: 2em; position: relative; bottom: -1em; } >+ .smile div div { position: absolute; top: 0; right: 1em; width: auto; height: 0; margin: 0; border: yellow solid 1em; } >+ >+ /* smile (over lines ten and eleven): backgrounds behind borders, inheritance of 'float', nested floats, negative heights */ >+ .smile div div span { display: inline; margin: -1em 0 0 0; border: solid 1em transparent; border-style: none solid; float: right; background: black; height: 1em; } >+ .smile div div span em { float: inherit; border-top: solid yellow 1em; border-bottom: solid black 1em; } /* zero-height block; width comes from (zero-height) child. */ >+ .smile div div span em strong { width: 6em; display: block; margin-bottom: -1em; /* should have no effect, since parent has top&bottom borders, so this margin doesn't collapse */ } >+ >+ /* line twelve: line-height */ >+ .chin { margin: -4em 4em 0; width: 8em; line-height: 1em; border-left: solid 1em black; border-right: solid 1em black; background: yellow url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAIAAAFSDNYfAAAAaklEQVR42u3XQQrAIAwAQeP%2F%2F6wf8CJBJTK9lnQ7FpHGaOurt1I34nfH9pMMZAZ8BwMGEvvh%2BBsJCAgICLwIOA8EBAQEBAQEBAQEBK79H5RfIQAAAAAAAAAAAAAAAAAAAAAAAAAAAID%2FABMSqAfj%2FsLmvAAAAABJRU5ErkJggg%3D%3D) /* 64x64 red square */ no-repeat fixed /* shouldn't be visible unless the smiley is moved to the top left of the viewport */; } >+ .chin div { display: inline; font: 2px/4px serif; } >+ >+ /* line thirteen: cascade and selector tests */ >+ .parser-container div { color: maroon; border: solid; color: orange; } /* setup */ >+ div.parser-container * { border-color: black; /* overrides (implied) border-color on previous line */ } /* setup */ >+ * div.parser { border-width: 0 2em; /* overrides (implied) declarations on earlier line */ } /* setup */ >+ >+ /* line thirteen continued: parser tests */ >+ .parser { /* comment parsing test -- comment ends before the end of this line, the backslash should have no effect: \*/ } >+ .parser { margin: 0 5em 1em; padding: 0 1em; width: 2em; height: 1em; error: \}; background: yellow; } /* setup with parsing test */ >+ * html .parser { background: gray; } >+ \.parser { padding: 2em; } >+ .parser { m\argin: 2em; }; >+ .parser { height: 3em; } >+ .parser { width: 200; } >+ .parser { border: 5em solid red ! error; } >+ .parser { background: red pink; } >+ >+ /* line fourteen (last line of face): table */ >+ ul { display: table; padding: 0; margin: -1em 7em 0; background: red; } >+ ul li { padding: 0; margin: 0; } >+ ul li.first-part { display: table-cell; height: 1em; width: 1em; background: black; } >+ ul li.second-part { display: table; height: 1em; width: 1em; background: black; } /* anonymous table cell wraps around this */ >+ ul li.third-part { display: table-cell; height: 0.5em; /* gets stretched to fit row */ width: 1em; background: black; } >+ ul li.fourth-part { list-style: none; height: 1em; width: 1em; background: black; } /* anonymous table cell wraps around this */ >+ >+ /* bits that shouldn't appear: inline alignment in cells */ >+ .image-height-test { height: 10px; overflow: hidden; font: 20em serif; } /* only the area between the top of the line box and the top of the image should be visible */ >+ table { margin: 0; border-spacing: 0; } >+ td { padding: 0; } >+ >+ </style> >+ <link rel="appendix stylesheet" href="data:text/css,.picture%20%7B%20background%3A%20none%3B%20%7D"> <!-- this stylesheet should be applied by default --> >+ </head> >+ <body> >+ <div class="intro"> >+ <h1>Standards compliant?</h1> >+ <p><a href="#top">Take The Acid2 Test</a> and compare it to <a >+ href="reference.html">the reference rendering</a>.</p> >+ </div> >+ <h2 id="top">Hello World!</h2> >+ <div class="picture"> >+ <p><table><tr><td></table><p class="bad"> <!-- <table> closes <p> per the HTML4 DTD --> >+ <blockquote class="first one"><address class="second two"></address></blockquote> >+ <div class="forehead"><div> </div></div> >+ <div class="eyes"><div id="eyes-a"><object data="data:application/x-unknown,ERROR"><object data="404.html?pipe=status(404)" type="text/html"><object data="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAAAYCAYAAAFy7sgCAAAGsUlEQVRo3u2ZbWwcZxHHf3s%2B7LNbO3ZjXBtowprGODRX0qpNQCjmJKuVKhMl1P2AkCwhFOIKkCBSm9IXavGFKAixIAECwkmWo5MrhRI3Ub40IEwQgp6aIDg3Cd6eEqyIHEteah%2B1E69vhw%2BZtTaX8704ZzkKjHS6271nZ56ZZ%2BY%2F%2F%2BdZKF%2FCwYshx3EkkggLsD1v4FQkEZZYLCbAKyG9%2Ba9EIsG6hnUAf8x74K3aUC3j4%2BM54HcsR2oAIomwZOezkv%2FnSHpYNh%2BNCmAE7xv94zvFdd1bHsjMZmQkPSxAJP%2B%2FfuBLwK54PC7JZFKAVJmzXLBt2w%2FMvcDLwIb8QS8CeJ4nkURYIomw7J%2FYJ8BvSiiXptGGxWds2%2Fa9%2Bnaxh%2BYAD%2Bgt04NDgABTpQY2cvvSFLzw86gWeBVwC8SzlOSv2YeBPfmDBoBHgKmR9LBEEmHZfDTqGykqfkUE0nA78BzQGfSgUeP3wNeTXwXg7MwZDhw4UHL6ra2ti79%2FOvljgG8AZ4H64Lhm4MvAocxsRppGG%2FxcXihlwLIs6R%2FfKV2HO%2F26uA94pdDYUKUZUU7W1RQYXA98Gnhaf5%2FXWX0HeAHYoQonqa4sZSOsSWMCWeC9Yko%2BCQwBe4E6oNc0Tc91XTl1%2BaTsn9gnI%2Blhyc5nZWxsrBIkKSbl2tiic3tW53YDEwOKaoFBrcOfqKee53lG9xsPMjV784r%2F4lO%2FpPvyJ9iyZcuvFSaXK5XYeAZ4CDgGvB3MS4B54LQuWYPeuy4iRFsevsXqpuYoqVQKIH2bK1CuDQNo11o4XUzh%2FcDWYIe1LEtyuZx4niee54njOGKapgfsqlL%2Bl2OjEXg8nxrc1dJ0h3hbtL%2BGCtz7KPBF4CuBe9uB15VafE8hr9qylI3HgG8C2%2FK7VyHZoJj7MrBRm30qFotJMpkU27YlHo%2F7Ha5a%2BV%2FKRkSJ4KuKRLVLKapTjB1SzAVIjY2NSXY%2BKyPpYdk%2FsU9OXT4pruv6BdZbBQfKsVGnvWlIe1VB6VQO8JxC1vZYLCbZ%2BaxsPhpdZDyRRFhG0sPiOE6ldKBg2lRg4xF1YCDIIIKN7DGgD3gH%2BBXwejKZfPrs2tPs%2FvPN2bKuYR1nd7xLKBSSJeqoXKnERjPwNWAG%2BLn2rZuM%2B4Tpml6vaWlp4eLcxVusZq5lCgVgOVKJjRqdX86ffL4D5wIoZACnTpw4wRMdT96i%2FImOJxERAs4uVyqxUacF%2FPdiCj%2BjdRBRGFtwXVdG0sPSdbhTmkYbpH98p2RmM2JZlig1vl0GWo4NQ%2Fn%2Bs5pKRXfwjweaxy7TND3HcRZbfC6X8xVPVQlGy7WxVWlO5XRXFXm6EZmrQuSXYyPE3SiVoEhE6Wyr0u2rumO6zv%2B21AFdQAswC1wCMuUCXCmyWQus103Qg8qlDO0lxwOb%2Fl4FiK3AB3VS%2FuKKLtK%2FgbeAnwG%2FvUODuRw%2FFrR0H1UC75fwu8oJ%2FhFsW5VIG%2FBUgEIN6Y65O4AHu4Ap0zQ9y7LEcZyb9lRBUHQcRyzL8unZVBW5bFWAvAp%2BhDQ2g4F47dUYtlU6obXA54DnVdFLekjUGGifh4AFy7LEdV3xj3X9I66m0QZpGm2QrsOd0j%2B%2BU0bSw5KZzYjrun6HWlAd961i4FfCj0aN1Usau%2Bc1lmuXPFwvAEumUut7tQQvAb%2FXb%2FT0bCAej9cODg7yt%2Bm%2F8q2%2F7OUHZ76PnZ1k2p0mJzlykmPancbOTnL0whHs7CQfb%2B5mx2d3sH79%2BtCRI0c6FeaOr9ICrIQfLvA%2B8BGNXxi4R6HrisJVUWrxAVW2oMFf0Aczim8o3kV6enowDIPjF9%2Fk%2BMU3S3rrjzMMg56eHr%2BxP7qKFbASfojG6kpeDGs1tiW53RxwWT%2Bin5q8w4xpQK5evQpAR30H7ZH2khNvj7TTUd8BgD4rqmu1ZKX8qNeY%2BfHz4zlXDgT5E8tpCTUq7XSBC4Euv8227TV9fX1E73%2BYtvo27BmbS9cvFVTY3bSRFza9yOcf6Gfmygy7d%2B%2Fm%2FPnzF4DvrsBLhnJlJfwIKXxv1PheAE4qK6p4H9AGbNKTuhngBPBPXYRe4IemaT5kWZbR19fHNbmGnZ1k4r3U4glDR30Hm5qjbGjsImJEOHbsGHv27JFz5869o0eFq01Jq%2BmHAXwI6FFKagMTgHM7GzFDS%2BoeLSMv7zjzC9x4Y7gxFovVDAwMEI1GaWlpWSzRVCrFwYMH%2FXfxZ4AfAa8B%2F7lDaGg1%2FQgp43lfK0yqtRMuJa3ceKe5DfgYsCYAZ2ngD8CfAkzqTpW7xY%2F%2FSznyX%2FVeUb2kVmX4AAAAAElFTkSuQmCC">ERROR</object></object></object></div><div id="eyes-b"></div><div id="eyes-c"></div></div> <!-- that's a PNG with 8bit alpha containing two eyes --> >+ <div class="nose"><div><div></div></div></div> >+ <div class="empty"><div></div></div> >+ <div class="smile"><div><div><span><em><strong></strong></em></span></div></div></div> >+ <div class="chin"><div> </div></div> >+ <div class="parser-container"><div class="parser"><!-- ->ERROR<!- --></div></div> <!-- two dashes is what delimits a comment, so the text "->ERROR<!-" earlier on this line is actually part of a comment --> >+ <ul> >+ <li class="first-part"></li> >+ <li class="second-part"></li> >+ <li class="third-part"></li> >+ <li class="fourth-part"></li> >+ </ul> >+ <div class="image-height-test"><table><tr><td><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAIAAAFSDNYfAAAAaklEQVR42u3XQQrAIAwAQeP%2F%2F6wf8CJBJTK9lnQ7FpHGaOurt1I34nfH9pMMZAZ8BwMGEvvh%2BBsJCAgICLwIOA8EBAQEBAQEBAQEBK79H5RfIQAAAAAAAAAAAAAAAAAAAAAAAAAAAID%2FABMSqAfj%2FsLmvAAAAABJRU5ErkJggg%3D%3D" alt=""></td></tr></table></div> >+ </div> >+ </body> >+</html> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/acid/acid2/w3c-import.log b/LayoutTests/imported/w3c/web-platform-tests/acid/acid2/w3c-import.log >new file mode 100644 >index 0000000000000000000000000000000000000000..66c239ccb7c2e38aca82c4350c62655a19a48160 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/acid/acid2/w3c-import.log >@@ -0,0 +1,21 @@ >+The tests in this directory were imported from the W3C repository. >+Do NOT modify these tests directly in WebKit. >+Instead, create a pull request on the WPT github: >+ https://github.com/w3c/web-platform-tests >+ >+Then run the Tools/Scripts/import-w3c-tests in WebKit to reimport >+ >+Do NOT modify or remove this file. >+ >+------------------------------------------------------------------------ >+Properties requiring vendor prefixes: >+None >+Property values requiring vendor prefixes: >+None >+------------------------------------------------------------------------ >+List of files: >+/LayoutTests/imported/w3c/web-platform-tests/acid/acid2/404.html >+/LayoutTests/imported/w3c/web-platform-tests/acid/acid2/reference.png >+/LayoutTests/imported/w3c/web-platform-tests/acid/acid2/reftest-expected.html >+/LayoutTests/imported/w3c/web-platform-tests/acid/acid2/reftest.html >+/LayoutTests/imported/w3c/web-platform-tests/acid/acid2/test.html >diff --git a/LayoutTests/imported/w3c/web-platform-tests/acid/acid3/empty.css b/LayoutTests/imported/w3c/web-platform-tests/acid/acid3/empty.css >new file mode 100644 >index 0000000000000000000000000000000000000000..d490c124219f46142975e935189b726b51c3fe2d >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/acid/acid3/empty.css >@@ -0,0 +1,8 @@ >+<!DOCTYPE HTML><html><head><title>FAIL</title><style> >+<!-- this file is sent as text/html, not text/css, which is why it is >+ called "empty.css" despite the following lines --> >+ >+ body { background: white; color: black; } >+ h1 { color: red; } >+ >+</style><body><h1>FAIL</h1></body></html> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/acid/acid3/empty.css.headers b/LayoutTests/imported/w3c/web-platform-tests/acid/acid3/empty.css.headers >new file mode 100644 >index 0000000000000000000000000000000000000000..156209f9c81ff73b6aaf1a0734ef770ddf0a8e3e >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/acid/acid3/empty.css.headers >@@ -0,0 +1 @@ >+Content-Type: text/html >diff --git a/LayoutTests/imported/w3c/web-platform-tests/acid/acid3/empty.html b/LayoutTests/imported/w3c/web-platform-tests/acid/acid3/empty.html >new file mode 100644 >index 0000000000000000000000000000000000000000..0b91841acfcbf74e4f10707731486ff3e9754e54 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/acid/acid3/empty.html >@@ -0,0 +1 @@ >+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"><html><head><title></title></head><body></body></html> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/acid/acid3/empty.png b/LayoutTests/imported/w3c/web-platform-tests/acid/acid3/empty.png >new file mode 100644 >index 0000000000000000000000000000000000000000..fd5b91ea07b947391714085ea9c763d3a7868d68 >GIT binary patch >literal 260 >zcmeAS@N?(olHy`uVBq!ia0vp^j3CSbBp9sfW`_bPrjj7PV1@&4zw>v1cuC&wE({E- >zdX<fUJkA1-$YLPv0mg18v+aP4mJ-*9l91Hm5(XPZ7k}rF$N*P`jFQ|OI~ypOnwVl| >zQ<7PdlWOPY=;>pl4`JKrXMkmr@>449Yzm-q1$H*Y$wiq3C3XdgMX7ludU^RJnQ4_8 >zN~yU8C6#&wdFe`;Hu_K{Hu@0F`e2*7e#HI*x`)ft#W95Ada?zOeTd=Uj|=|7Ko*0i >LtDnm{r-UW|%f3qN > >literal 0 >HcmV?d00001 > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/acid/acid3/empty.txt b/LayoutTests/imported/w3c/web-platform-tests/acid/acid3/empty.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..452a7e6d753d41df960bab59fdc8c72008bf9698 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/acid/acid3/empty.txt >@@ -0,0 +1 @@ >+<!DOCTYPE html><html><head><title>FAIL</title></head><body><p>FAIL</p><script>parent.notify("empty.txt")</script></body></html> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/acid/acid3/empty.xml b/LayoutTests/imported/w3c/web-platform-tests/acid/acid3/empty.xml >new file mode 100644 >index 0000000000000000000000000000000000000000..e6a125cc0d575e74c47f84c7128352e83c3a932c >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/acid/acid3/empty.xml >@@ -0,0 +1,4 @@ >+<root> >+ <fail> This is an invalid byte in UTF-8: ¿ </fail> >+ <test/> <!-- shouldn't ever be parsed, as the parser should abort at the first sign of non-well-formedness --> >+</root> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/acid/acid3/empty.xml.headers b/LayoutTests/imported/w3c/web-platform-tests/acid/acid3/empty.xml.headers >new file mode 100644 >index 0000000000000000000000000000000000000000..9395ed9a2857bcebf3e888bf22876337af40b89c >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/acid/acid3/empty.xml.headers >@@ -0,0 +1 @@ >+Content-Type: application/xml;charset=utf-8 >diff --git a/LayoutTests/imported/w3c/web-platform-tests/acid/acid3/favicon.ico b/LayoutTests/imported/w3c/web-platform-tests/acid/acid3/favicon.ico >new file mode 100644 >index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 >diff --git a/LayoutTests/imported/w3c/web-platform-tests/acid/acid3/favicon.ico.headers b/LayoutTests/imported/w3c/web-platform-tests/acid/acid3/favicon.ico.headers >new file mode 100644 >index 0000000000000000000000000000000000000000..afa04c171df258a598d599d2eeccd523c096f3de >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/acid/acid3/favicon.ico.headers >@@ -0,0 +1 @@ >+Content-Type: image/x-icon >diff --git a/LayoutTests/imported/w3c/web-platform-tests/acid/acid3/numbered-tests-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/acid/acid3/numbered-tests-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..eb8230ef36601d2fc4198705a5f4e0712158366f >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/acid/acid3/numbered-tests-expected.txt >@@ -0,0 +1,104 @@ >+CONSOLE MESSAGE: Did not parse stylesheet at 'http://localhost:8800/acid/acid3/empty.css' because non CSS MIME types are not allowed in strict mode. >+ >+ >+PASS Test 0 >+PASS Test 1 >+PASS Test 2 >+PASS Test 3 >+PASS Test 4 >+PASS Test 5 >+PASS Test 6 >+PASS Test 7 >+PASS Test 8 >+PASS Test 9 >+PASS Test 10 >+PASS Test 11 >+PASS Test 12 >+PASS Test 13 >+PASS Test 14 >+PASS Test 15 >+PASS Test 16 >+PASS Test 17 >+PASS Test 18 >+PASS Test 19 >+PASS Test 20 >+PASS Test 21 >+PASS Test 22 >+PASS Test 23 >+PASS Test 24 >+PASS Test 25 >+PASS Test 26 >+PASS Test 27 >+PASS Test 28 >+PASS Test 29 >+PASS Test 30 >+PASS Test 31 >+PASS Test 32 >+PASS Test 33 >+PASS Test 34 >+PASS Test 35 >+PASS Test 36 >+PASS Test 37 >+PASS Test 38 >+PASS Test 39 >+PASS Test 40 >+PASS Test 41 >+PASS Test 42 >+PASS Test 43 >+PASS Test 44 >+PASS Test 45 >+PASS Test 46 >+PASS Test 47 >+PASS Test 48 >+PASS Test 49 >+PASS Test 50 >+PASS Test 51 >+PASS Test 52 >+PASS Test 53 >+PASS Test 54 >+PASS Test 55 >+PASS Test 56 >+PASS Test 57 >+PASS Test 58 >+PASS Test 59 >+PASS Test 60 >+PASS Test 61 >+PASS Test 62 >+PASS Test 63 >+PASS Test 64 >+PASS Test 65 >+PASS Test 66 >+PASS Test 67 >+PASS Test 68 >+PASS Test 69 >+PASS Test 70 >+PASS Test 71 >+PASS Test 72 >+PASS Test 73 >+PASS Test 74 >+PASS Test 75 >+PASS Test 76 >+PASS Test 77 >+PASS Test 78 >+PASS Test 79 >+PASS Test 80 >+PASS Test 81 >+PASS Test 82 >+PASS Test 83 >+PASS Test 84 >+PASS Test 85 >+PASS Test 86 >+PASS Test 87 >+PASS Test 88 >+PASS Test 89 >+PASS Test 90 >+PASS Test 91 >+PASS Test 92 >+PASS Test 93 >+PASS Test 94 >+PASS Test 95 >+PASS Test 96 >+PASS Test 97 >+PASS Test 98 >+PASS Test 99 >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/acid/acid3/numbered-tests.html b/LayoutTests/imported/w3c/web-platform-tests/acid/acid3/numbered-tests.html >new file mode 100644 >index 0000000000000000000000000000000000000000..42d3324c69edc97c1ee455fd3b0533de32cc2f0e >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/acid/acid3/numbered-tests.html >@@ -0,0 +1,28 @@ >+<!doctype html> >+<title>Acid3 numbered tests</title> >+<meta name="timeout" content="long"> >+<script src="/resources/testharness.js"></script> >+<script src="/resources/testharnessreport.js"></script> >+<script> >+var tests = undefined; >+ >+function gotMessage(e) { >+ var m = e.data; >+ if (tests === undefined && "num_tests" in m) { >+ tests = []; >+ for (var i = 0; i < m.num_tests; i++) { >+ tests.push(async_test("Test " + i)); >+ } >+ } else if ("result" in m) { >+ var test = m.test; >+ var passed = m.result === "pass"; >+ var message = m.message; >+ tests[test].step(function() { >+ assert_true(passed, message); >+ }); >+ tests[test].done(); >+ } >+} >+window.addEventListener("message", gotMessage, false); >+</script> >+<iframe src="test.html"></iframe> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/acid/acid3/reference.png b/LayoutTests/imported/w3c/web-platform-tests/acid/acid3/reference.png >new file mode 100644 >index 0000000000000000000000000000000000000000..22cd4cae0837ad174b0d08070ce7fa01d9d3a748 >GIT binary patch >literal 1771 >zcmeAS@N?(olHy`uVBq!ia0y~yV4BImz<7*<2`IARFZ(VA2DVL}E{-7;x8B}$^gC=I >z;1I}v>R?TOoZ9q<a{Ff94CCnX5VoGYXS<WfU7v|{uTJ@FxyHpX;aa;OL&G#?hA2LU >z3`-DN@D#>}2toJ=B_C3LzUR(byNr!Nc<Z%$S(TbgzvuNa7`VFB{O&a_V>sb^no(i< >zQ4R)$>CfMv&R%Obo!KD|XcF8og!#nTM}(7rMq)P=;cA>pKn{bu4X7TWWyo6mQ^$>= >zKvgi2WA@j3TV)!4UfU#fXzjCSJ+cf%mx~xK6froQW@ON12ca!8P(D-$!UrmO(DTNI >z_1Wg4-&>b>Z@pObpzNSg(|x(po`&mlHj)rVZ_b_zwwSQ>j#z&4w8N}fWzW+k^X+>c >z0G)!<W`s*1N)qzR<`pf-&VRpcru2oPyoamya?jq`c)8#hQoLc0eMHo5Ft_$kKeg}P >zZKiw%-Q{1-Z{b(se=m1H(;^uu6c7Oev>5I@L_pn${xx^`^LWO*ljaOj|H5_7|5@?S >zpGP83ceNrgsbt#Uv*6w%e}6hg=p68Pw}ess;eA73(#qT^#QPqb)0KBlW@9hTmby@M >z;`G+c1cvlCNJ$!!J`E;WXUb^bS;uyv=u^>dDV%C1A3e;&aN*OInEh-IYR}zZ#0bzO >z+IKuRD@Zfw`kxWaWym`xX^qJDh~!UPjv*BC5P2M?V$XM@7Gp1YNDXT2rU0V?M{EGq >z!?h5h1d+SY;}~Mf0iM%s*Iil;GCEwFw*6Y&A4!H8hu|sgfZ0Rqd<KuV+;Yt>qTWfl >R<-kge!PC{xWt~$(6980{JBa`Q > >literal 0 >HcmV?d00001 > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/acid/acid3/support-a.png b/LayoutTests/imported/w3c/web-platform-tests/acid/acid3/support-a.png >new file mode 100644 >index 0000000000000000000000000000000000000000..9f240083debc76f67f33bc4e15c0318e5e031a35 >GIT binary patch >literal 2312 >zcmc(h`#;l*AICo|%+NMjh=YaZvW6p)a+^7B$t+4Pu`neLD%vr*^>Hc6rHgAJcS2cm >zIaubBTc|@$l$lT_xec2$I?ki-|M30c{eC@OugCNE*XtJXl(iJ>01N;CDO(!?X;&Zq >zcTnNoPxqOt-xZ;&Bx^iSGpIPfYxekCI9LF{^Hd1|S!CC%_}Gvf03hNJ0K|X*u(cb- >zd<B3oT>#*C1AuWB0LX^qH9MUE0BC|O!NQq(eldrAS6v$lZnp8;_>=eYihbPTwanw? >zF>Cvf97r){jm0qAENc{21~(gC2xofzA<~B-Hpk-Q7|?!gqG@az9=AAi5L;``-(z=_ >zXtOL!{*OSAdP*L7fU_u#eDirxnE1|50uO6?aWDB<i}36|jZfz2cCVj=4LURY3i9FE >zf=J;K1r0UcPXemxJKW2<|HJ<p@(C=G=Lwd((jOaXOmA{-3PG<jwY81n1Qan;AYZ-M >z6~eYBL|aTLMMQn*z9a;S<$Cul9h|v6SCB-nqQ4=XB1Z0ju1YdaZN{js7N`rdT}yAk >zWSx^ttj$FrX@$u7_A03dLhltXmsa&ga3?+=9K5C&72CoSH>3hPzS~Og(4DgiFP&*E >zE@JG>=hr8{e<3fYNsuSx8*?1TV+H1UqFo)SYIt5wAQlg2?BEdO1X(=^CK|}QV8jTn >zjS&Km?w{2aVafv@oqunaL=*fT-k)Z7o59e3GEN-7%Sd3hPwgF2m6=J-p<GGr6N;g8 >zr;4a@Z2N+9^A*N01MNr}SN&IR(WGgMaIk9GtfP64-LO{8Ah2vg@qxZDyM+j}_#>}R >zdectc&CW!+r(=pE$7Gjf8N*!+5=B$pJ3`k@_J?ag;2r5$X!@`eFmBZy=}|z<V_{<S >zp%uu!sFG|aak0eD#t?=KG<|37Bopyu_50R>A<0*qi`_&IP#nV?7qAR{Pb0zb8Cob( >z?qju^O8_icGMo`_#TSoO=7o7)v~m4(WBJsUYsAB%4<F9b<gaj#eEp8|_31KGMyAmx >z(&>kz*vD7{O9Spnrxmp>?+7xNtTg&)^K0x_jNFCn1_}Qh9NtK<y5LW(-1)~Y6ksn{ >zTu97q${xwcR9NYv@^)e?D$<Ffe<G)C>pXeuSnsSGs2GV;3n$==YEPTiwE)WjLNQ_k >z?eu!IEIr^5eWesv%&Qp6i1lJ^(>*iC3&FCtDWFLs1l{jwWi+w0GKnfZa#t6^_~quv >zE4W2@TO|Du<dG^>Nr9~D<KE}ZcqtJikksnm9t)@r=k%L<X8A!N(i=T^kP@|ks1(fT >zBwBkE|JWMK^n;Ao;*Dm?D3h1>yv$^!xarJtxFfivY6JJU;ojhA+3Cgg&hW@6Q=v{( >z?%INaaA2LrM#33tSKx-Xkz9)I?R=?(MVUrM`SkP<;hU(!E#0*ICS-dQs!hVh*%E>= >z8(NdU^=#-(wyVuqHZf><T*XUiq(p|l<y_>JG(1#$M+rlwJ3q+S%zXTC+!ZY_b*jcw >z`QnG=*0-Xn0>tt4Kt)DF7%J*EjAA6W#ph3B_V~2j*tCw<C+3Oy$xDx>c_oKvngz>} >z;4w`Gnpy?V_dVXinf5)M`+~PY7p6RNAGjKMGjfgyx!l9sPnx)$oxkOTme8}5(@-Yi >zp7+};w}_xo_Yzq!u#8vTIM$d>Dp{P#lwyB7ZgC@KY^8{W*E(ay2mzHe6NAOnlfHzr >zv3fS6Av8$zFsFox8hQ0P--W-uRyGh}j;ti@mHPW)1a191q7aio)-2}_meyc0*yo^y >zm7kl}JzEc0e06e=GM9Vyn6^UiM;e#OKbg{X=g|F2Wv|d!L1=sP^I!tk{Fl+*gyhwF >z!uLlGQ5(2alaY9DQ=7qr(j$!qGJW<0KB?)l$q7k+Cy+|cLFLc?9)2+mVylm0IO;0m >z)hy}L+ZJEKSZp$I>0<lNe7$E-()$edRR@*ouo?}gG+oM)SO38Bd1C0xZX7s>v*4~y >z#JuC_tkM9>8`&Z%9u41kRu-k_dJZS&sSte-6s77qSaLD^y0$O!)^a^5q3o@h?i6Zu >zuekBCi-*pV)$p9Z`YNF7l5q79(PxW|#`ed+iRtdK2sJfwBH^y`3nzXkD_%_hQmrAk >zIRxa)y@9C+pkQuMzNh~}*~ZA{V{5Pk>^n!nu!=)Je5vsL6&o4lPnH|ruVa+G8;_Pt >z+*^ZK$-g(q9ZxYSX*9NR4Yrf5vn6d5Yz5fyN_0f2`y^QU0n{ofHL&r>ef8t75#q~$ >z<V4z(z`!}3*b!6;4RuNzE%G{8zL)sdhV{Z`foM|?;O3uqeTXMQ;zE*Er$+ihB9Ac< >zQFZ&49qz<|JiRns<#Wl)xr@3+grt134+Wy+krdLcgUK?fmLwGp>_3PdiTswKNQ#%i >zv{RLt<nfW;ieUb0hNrDtaUWlahKb=hRUJ<yCT*XR=F-Y<20Ev1Yk>jW#_7tc58b}| >zOU#lwr=G8X2T~9xeR_skh}2c<!I!olDD_wg>5kO~gxc6rc?aCIGgm)IKpk2-mfTq} >zK9xRzg)|fIkhYtNvasmKhHzm<rX>-~%syN>rm2JXB}lR=$v@tRK7Ex%BA+>Fi3tD$ >zX3^8c75E)b=o@q;hbl>#xYJkL>MRA^k2-{;D(cZyWq7@^r%83&>9>`IUj_RRzG~KF >z_tpA2{&KptU1w$!*&Y|tm8-~fq+W}^;H77_-5O6TK>lVT-Jz7>|1_k&g&QX@rEt<- >zKlnuHMSElxa`>ycqk9rVoc#Qz8Z_#qem|{3Fm&ZSS{vyUed|-(b9dO#EIlV_bfutS >z1bTM)pYK>P6r5ok{A)5VUYq)n91hZhQ$I6j#Z`2eCl08m{;#7m8hR3zam-cNeMfK0 >jYz$-iXEFc3;vKOX?4>xa?bR2%Qw6ZKIz_0#d&m6?Td7c@ > >literal 0 >HcmV?d00001 > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/acid/acid3/support-b.png b/LayoutTests/imported/w3c/web-platform-tests/acid/acid3/support-b.png >new file mode 100644 >index 0000000000000000000000000000000000000000..752ee7ec05c462af34db027e5ef9cd80cd1ce0aa >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/acid/acid3/support-b.png >@@ -0,0 +1 @@ >+<!DOCTYPE html><html><head><title>FAIL</title><style> * { background: transparent; } </style></head><body><p><!-- this file is transparent --></p></body></html> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/acid/acid3/support-b.png.headers b/LayoutTests/imported/w3c/web-platform-tests/acid/acid3/support-b.png.headers >new file mode 100644 >index 0000000000000000000000000000000000000000..844a971169c4b50126e6d41a421f083add94697c >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/acid/acid3/support-b.png.headers >@@ -0,0 +1,2 @@ >+Content-Type: text/html >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/acid/acid3/svg.xml b/LayoutTests/imported/w3c/web-platform-tests/acid/acid3/svg.xml >new file mode 100644 >index 0000000000000000000000000000000000000000..f5b1ffad147de5b97188101d446e4a0ffa797305 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/acid/acid3/svg.xml >@@ -0,0 +1 @@ >+<?xml-stylesheet href="data:text/css,text%7Bfont-family%3AACID3svgfont%7D"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="100" height="100"><defs><font-face font-family="ACID3svgfont"><font-face-src><font-face-uri xlink:href="font.svg#mini"/></font-face-src></font-face><path id="path" d="M0 0l0 42l16 16l4711 0"/></defs><text>X</text></svg> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/acid/acid3/svg.xml.headers b/LayoutTests/imported/w3c/web-platform-tests/acid/acid3/svg.xml.headers >new file mode 100644 >index 0000000000000000000000000000000000000000..070de35fbe96585b9cf1b7da4ce8e4ff08a8f3ba >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/acid/acid3/svg.xml.headers >@@ -0,0 +1 @@ >+Content-Type: image/svg+xml >diff --git a/LayoutTests/imported/w3c/web-platform-tests/acid/acid3/test-expected.html b/LayoutTests/imported/w3c/web-platform-tests/acid/acid3/test-expected.html >new file mode 100644 >index 0000000000000000000000000000000000000000..974bee11e4d010853dba9b7c097e91615ad682f3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/acid/acid3/test-expected.html >@@ -0,0 +1,21 @@ >+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"> >+<html> >+ <title>The Acid3 Test (Reference Rendering)</title> >+ <link rel="icon" href="http://nonexistent.{{host}}"> >+ <style type="text/css"> >+ html { margin: 0; padding: 0; } >+ body { background: #c0c0c0 url(reference.png) top left no-repeat; margin: 0; padding: 0; } >+ #a { font: bold 100px/120px Arial, sans-serif; position: absolute; top: 57px; left: 57px; color: #000000; z-index: 1; } >+ #a0 { font: bold 100px/120px Arial, sans-serif; position: absolute; top: 60px; left: 60px; color: #C0C0C0; z-index: 0; } >+ #b { position: absolute; top: 230px; left: 625px; width: 0; white-space: pre; } >+ #b div { font: bold 100px/120px Arial, sans-serif; position: absolute; right: 0; text-align: right; color: #000000; } >+ #c { font: 16px/19.2px Arial, sans-serif; color: #808080; width: 562px; position: absolute; top: 350px; left: 57px; } >+ #c a { color: #0000FF; } >+ </style> >+ <body> >+ <div id="a">Acid3</div> >+ <div id="a0">Acid3</div> >+ <div id="b"><div>100/100</div></div> >+ <div id="c">To pass the test,<span></span> a browser must use its default settings, the animation has to be smooth, the score has to end on 100/100, and the final page has to look exactly, pixel for pixel, like <a href="reference.sub.html">this reference rendering</a>.</div> >+ </body> >+</html> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/acid/acid3/test.html b/LayoutTests/imported/w3c/web-platform-tests/acid/acid3/test.html >new file mode 100644 >index 0000000000000000000000000000000000000000..0c475309cf57fd67d5710f7a39d6c9efc251f378 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/acid/acid3/test.html >@@ -0,0 +1,3513 @@ >+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> >+<html class="reftest-wait"> >+ <title>The Acid3 Test</title> >+ <link rel="match" href="reference.sub.html"> >+ <script type="text/javascript"> >+ var startTime = new Date(); >+ </script> >+ <style type="text/css"> >+ >+ /* set some basic styles so that we can get reliably exact results */ >+ * { margin: 0; border: 1px blue; padding: 0; border-spacing: 0; font: inherit; line-height: 1.2; color: inherit; background: transparent; } >+ :link, :visited { color: blue; } >+ >+ /* header and general layout */ >+ html { font: 20px Arial, sans-serif; border: 2cm solid gray; width: 32em; margin: 1em; } >+ :root { background: silver; color: black; border-width: 0 0.2em 0.2em 0; } /* left and top content edges: 1*20px = 20px */ >+ body { padding: 2em 2em 0; background: url(data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAIAAAAC64paAAAABGdBTUEAAK%2FINwWK6QAAAAlwSFlzAAAASAAAAEgARslrPgAAABtJREFUOMtj%2FM9APmCiQO%2Bo5lHNo5pHNVNBMwAinAEnIWw89gAAACJ6VFh0U29mdHdhcmUAAHjac0zJT0pV8MxNTE8NSk1MqQQAL5wF1K4MqU0AAAAASUVORK5CYII%3D) no-repeat 99.8392283% 1px white; border: solid 1px black; margin: -0.2em 0 0 -0.2em; } /* left and top content edges: 20px-0.2*20px+1px+2*20px = 57px */ >+ h1:first-child { cursor: help; font-size: 5em; font-weight: bolder; margin-bottom: -0.4em; text-shadow: rgba(192, 192, 192, 1.0) 3px 3px; } /* (left:57px, top:57px) */ >+ #result { font-weight: bolder; width: 5.68em; text-align: right; } >+ #result { font-size: 5em; margin: -2.19em 0 0; } /* (right:57px+5.2*5*20px = 577px, top:57px+1.2*5*20px-0.4*5*20px+1px+1*40px+1*40px+1px+2*40px+150px-2.19*5*20px = 230px) */ >+ .hidden { visibility: hidden; } >+ #slash { color: red; color: hsla(0, 0%, 0%, 1.0); } >+ #instructions { margin-top: 0; font-size: 0.8em; color: gray; color: -acid3-bogus; height: 6.125em; } /* (left:57px, top:230px+1.2*5*20+0 = 350px) */ >+ #instructions { margin-right: -20px; padding-right: 20px; background: url(data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAIAAAAC64paAAAABGdBTUEAAK%2FINwWK6QAAAAlwSFlzAAAASAAAAEgARslrPgAAABtJREFUOMtj%2FM9APmCiQO%2Bo5lHNo5pHNVNBMwAinAEnIWw89gAAACJ6VFh0U29mdHdhcmUAAHjac0zJT0pV8MxNTE8NSk1MqQQAL5wF1K4MqU0AAAAASUVORK5CYII%3D) no-repeat top right; } >+ #instructions span { float: right; width: 20px; margin-right: -20px; background: white; height: 20px; } >+ @font-face { font-family: "AcidAhemTest"; src: url(/fonts/Ahem.ttf); } >+ map::after { position: absolute; top: 18px; left: 638px; content: "X"; background: fuchsia; color: white; font: 20px/1 AcidAhemTest; } >+ iframe { float: left; height: 0; width: 0; } /* hide iframes but don't make them display: none */ >+ object { position: fixed; left: 130.5px; top: 84.3px; background: transparent; } /* show objects if they have content */ >+ .removed { position: absolute; top: 80px; left: 380px; height: 100px; width: 100px; opacity: 0; } >+ >+ /* set the line height of the line of coloured boxes so we can add them without the layout changing height */ >+ .buckets { font: 0/0 Arial, sans-serif; } >+ .buckets { padding: 0 0 150px 3px; } >+ >+ /* the next two rules give the six coloured blocks their default styles (they match the same elements); the third hides them */ >+ :first-child + * .buckets p { display: inline-block; vertical-align: 2em; border: 2em dotted red; padding: 1.0em 0 1.0em 2em; } >+ * + * > * > p { margin: 0; border: 1px solid ! important; } >+ .z { visibility: hidden; } /* only matches the buckets with no score */ >+ >+ /* sizes for the six buckets */ >+ #bucket1 { font-size: 20px; margin-left: 0.2em; padding-left: 1.3em; padding-right: 1.3em; margin-right: 0.0001px; } >+ #bucket2 { font-size: 24px; margin-left: 0.375em; padding-left: 30px; padding-right: 32px; margin-right: 2px; } >+ #bucket3 { font-size: 28px; margin-left: 8.9999px; padding-left: 17px; padding-right: 55px; margin-right: 12px; } >+ #bucket4 { font-size: 32px; margin-left: 0; padding-left: 84px; padding-right: 0; margin-right: 0; } >+ #bucket5 { font-size: 36px; margin-left: 13px; padding-left: 0; padding-right: 94px; margin-right: 25px; } >+ #bucket6 { font-size: 40px; margin-left: -10px; padding-left: 104px; padding-right: -10px; } >+ >+ /* colours for them */ >+ .z, .zP, .zPP, .zPPP, .zPPPP, .zPPPPP { background: black; } >+ .zPPPPPP, .zPPPPPPP, .zPPPPPPPP, .zPPPPPPPP, .zPPPPPPPPP, >+ .zPPPPPPPPPP { background: grey; } >+ .zPPPPPPPPPPP, .zPPPPPPPPPPPP, .zPPPPPPPPPPPPP, >+ .zPPPPPPPPPPPPPP, .zPPPPPPPPPPPPPPP { background: silver; } >+ #bucket1.zPPPPPPPPPPPPPPPP { background: red; } >+ #bucket2.zPPPPPPPPPPPPPPPP { background: orange; } >+ #bucket3.zPPPPPPPPPPPPPPPP { background: yellow; } >+ #bucket4.zPPPPPPPPPPPPPPPP { background: lime; } >+ #bucket5.zPPPPPPPPPPPPPPPP { background: blue; } >+ #bucket6.zPPPPPPPPPPPPPPPP { background: purple; } >+ >+ /* The line-height for the .bucket div is worked out as follows: >+ * >+ * The div.bucket element has a line box with a few >+ * inline-blocks. Each inline-block consists of: >+ * >+ * 2.0em vertical-align from baseline to bottom of inline-block >+ * 1px bottom border >+ * 1.0em bottom padding >+ * 1.0em top padding >+ * 1px top border >+ * >+ * The biggest inline-block has font-size: 40px. >+ * >+ * Thus the distance from the baseline to the top of the biggest >+ * inline-block is (2em+1em+1em)*2em*20px+2px = 162px. >+ * >+ * The line box itself has no other contents, and its strut has zero >+ * height and there is no half-leading, so the height of the >+ * div.bucket is 162px. >+ * >+ * (Why use line-height:0 and font-size:0? Well: >+ * >+ * The div.bucket line box would have a height that is the maximum >+ * of the following two sums: >+ * >+ * 1: half-leading + font descent at 1em + font ascent at 1em + half-leading >+ * 2: half-leading + font descent at 1em + 162px >+ * >+ * Now the half-leading is (line-height - (font-ascent + font-descent))/2, so that is really: >+ * >+ * 1: (line-height - (font-ascent + font-descent))/2 + font descent + font ascent + (line-height - (font-ascent + font-descent))/2 >+ * 2: (line-height - (font-ascent + font-descent))/2 + font descent + 162px >+ * >+ * Which simplify to: >+ * >+ * 1: line-height >+ * 2: line-height/2 + (font descent - font-ascent)/2 + 162px >+ * >+ * So if the following expression is true: >+ * >+ * line-height > line-height/2 + (font descent - font-ascent)/2 + 162px >+ * >+ * That is, if this is true: >+ * >+ * line-height > font descent - font-ascent + 324px >+ * >+ * ...then the line-height matters, otherwise the font does. Note >+ * that font descent - font-ascent will be in the region of >+ * 10px-30px (with Ahem, exactly 12px). However, if we make the >+ * line-height big, then the _positioning_ of the inline-blocks will >+ * depend on the font descent, since that is what will decide the >+ * distance from the bottom of the line box to the baseline of the >+ * block (since the baseline is set by the strut). >+ * >+ * However, in Acid2 a dependency on the font metrics was introduced >+ * and this caused all kinds of problems. And we can't require Ahem >+ * in the Acid tests, since it's unlikely most people will have it >+ * installed. >+ * >+ * What we want is for the font to not matter, and the baseline to >+ * be as high as possible. We can do that by saying that the font >+ * and the line-height are zero. >+ * >+ * One word of warning. If your browser has a minimum font size feature >+ * that forces font sizes up even when there is no text, you will need >+ * to disable it before running this test. >+ * >+ */ >+ >+ /* rules specific to the tests below */ >+ #instructions:last-child { white-space: pre-wrap; white-space: x-bogus; } >+ /* replaced for http://dbaron.org/mozilla/visited-privacy with the three rules after it: >+ #linktest:link { display: block; color: red; text-align: center; text-decoration: none; } >+ #linktest.pending, #linktest:visited { display: none; } */ >+ #linktest { position: absolute; left: 17px; top: 18px; color: red; width: 80px; text-decoration: none; font: 900 small-caps 10px sans-serif; } >+ #linktest:link { color: red; } >+ #linktest.pending, #linktest:visited { color: white; } >+ #\ { color: transparent; color: hsla(0, 0, 0, 1); position: fixed; top: 10px; left: 10px; font: 40px Arial, sans-serif; } >+ #\ #result, #\ #score { position: fixed; top: 10%; left: 10%; width: 4em; z-index: 1; color: yellow; font-size: 50px; background: fuchsia; border: solid 1em purple; } >+ </style> >+ >+ <!-- part of the HTTP tests --> >+ <link rel="stylesheet" href="empty.css"><!-- text/html file (should be ignored, <h1> will go red if it isn't) --> >+ >+ <!-- the next five script blocks are part of one of the tests --> >+ <script type="text/javascript"> >+ var d1 = "fail"; >+ var d2 = "fail"; >+ var d3 = "fail"; >+ var d4 = "fail"; >+ var d5 = "fail"; >+ </script> >+ <script type="text/javascript" src="data:text/javascript,d1%20%3D%20'one'%3B"></script> >+ <script type="text/javascript" src="data:text/javascript;base64,ZDIgPSAndHdvJzs%3D"></script> >+ <script type="text/javascript" src="data:text/javascript;base64,%5a%44%4d%67%50%53%41%6e%64%47%68%79%5a%57%55%6e%4f%77%3D%3D"></script> >+ <script type="text/javascript" src="data:text/javascript;base64,%20ZD%20Qg%0D%0APS%20An%20Zm91cic%0D%0A%207%20"></script> >+ <script type="text/javascript" src="data:text/javascript,d5%20%3D%20'five%5Cu0027s'%3B"></script> >+ >+ <!-- part of the JS regexp and \0 value tests test --> >+ <script type="text/javascript"> >+ var nullInRegexpArgumentResult = 0 < /script/.test('\0script') ? "passed" : "failed"; >+ </script> >+ >+ <!-- main test body --> >+ <script type="text/javascript"> >+ var notifications = {}; >+ function notify(file) { >+ // used in cross-file tests >+ notifications[file] = 1; >+ } >+ function fail(message) { >+ throw { message: message }; >+ } >+ function assert(condition, message) { >+ if (!condition) >+ fail(message); >+ } >+ function assertEquals(expression, value, message) { >+ if (expression != value) { >+ expression = (""+expression).replace(/[\r\n]+/g, "\\n"); >+ value = (""+value).replace(/\r?\n/g, "\\n"); >+ fail("expected '" + value + "' but got '" + expression + "' - " + message); >+ } >+ } >+ function getTestDocument() { >+ var iframe = document.getElementById("selectors"); >+ var doc = iframe.contentDocument; >+ for (var i = doc.documentElement.childNodes.length-1; i >= 0; i -= 1) >+ doc.documentElement.removeChild(doc.documentElement.childNodes[i]); >+ doc.documentElement.appendChild(doc.createElement('head')); >+ doc.documentElement.firstChild.appendChild(doc.createElement('title')); >+ doc.documentElement.appendChild(doc.createElement('body')); >+ return doc; >+ } >+ function selectorTest(tester) { >+ var doc = getTestDocument(); >+ var style = doc.createElement('style'); >+ style.appendChild(doc.createTextNode("* { z-index: 0; position: absolute; }\n")); >+ doc.documentElement.firstChild.appendChild(style); >+ var ruleCount = 0; >+ tester(doc, function (selector) { >+ ruleCount += 1; >+ style.appendChild(doc.createTextNode(selector + " { z-index: " + ruleCount + "; }\n")); >+ return ruleCount; >+ }, function(node, rule, message) { >+ var value = doc.defaultView.getComputedStyle(node, "").zIndex; >+ assert(value != 'auto', "underlying problems prevent this test from running properly"); >+ assertEquals(value, rule, message); >+ }); >+ } >+ var kungFuDeathGrip = null; // used to hold things from test to test >+ var tests = [ >+ >+ // there are 6 buckets with 16 tests each, plus four special tests (0, 97, 98, and 99). >+ >+ // Remove the "JS required" message and the <script> element in the <body> >+ function () { >+ // test 0: whether removing an element that is the last child correctly recomputes styles for the new last child >+ // also tests support for getComputedStyle, :last-child, pre-wrap, removing a <script> element >+ // removing script: >+ var scripts = document.getElementsByTagName('script'); >+ document.body.removeChild(scripts[scripts.length-1]); >+ // removing last child: >+ var last = document.getElementById('remove-last-child-test'); >+ var penultimate = last.previousSibling; // this should be the whitespace node >+ penultimate = penultimate.previousSibling; // this should now be the actual penultimate element >+ last.parentNode.removeChild(last); >+ assertEquals(document.defaultView.getComputedStyle(penultimate, '').whiteSpace, 'pre-wrap', "found unexpected computed style"); >+ return 7; >+ }, >+ >+ // bucket 1: DOM Traversal, DOM Range, HTTP >+ // DOM Traversal >+ function () { >+ // test 1: NodeFilters and Exceptions >+ var doc = getTestDocument(); // looks like <!DOCTYPE><html><head><title/><\head><body/><\html> (the '\'s are to avoid validation errors) >+ var iteration = 0; >+ var exception = "Roses"; >+ var test = function(node) { >+ iteration += 1; >+ switch (iteration) { >+ case 1: case 3: case 4: case 6: case 7: case 8: case 9: case 14: case 15: throw exception; >+ case 2: case 5: case 10: case 11: case 12: case 13: return true; // ToNumber(true) => 1 >+ default: throw 0; >+ }; >+ }; >+ var check = function(o, method) { >+ var ok = false; >+ try { >+ o[method](); >+ } catch (e) { >+ if (e === exception) >+ ok = true; >+ } >+ assert(ok, "method " + o + "." + method + "() didn't forward exception"); >+ }; >+ var i = doc.createNodeIterator(doc.documentElement, 0xFFFFFFFF, test, true); >+ check(i, "nextNode"); // 1 >+ assertEquals(i.nextNode(), doc.documentElement, "i.nextNode() didn't return the right node"); // 2 >+ check(i, "previousNode"); // 3 >+ var w = document.createTreeWalker(doc.documentElement, 0xFFFFFFFF, test, true); >+ check(w, "nextNode"); // 4 >+ assertEquals(w.nextNode(), doc.documentElement.firstChild, "w.nextNode() didn't return the right node"); // 5 >+ check(w, "previousNode"); // 6 >+ check(w, "firstChild"); // 7 >+ check(w, "lastChild"); // 8 >+ check(w, "nextSibling"); // 9 >+ assertEquals(iteration, 9, "iterations went wrong"); >+ assertEquals(w.previousSibling(), null, "w.previousSibling() didn't return the right node"); // doesn't call filter >+ assertEquals(iteration, 9, "filter called incorrectly for previousSibling()"); >+ assertEquals(w.lastChild(), doc.getElementsByTagName('title')[0], "w.lastChild() didn't return the right node"); // 10 >+ assertEquals(w.nextSibling(), null, "w.nextSibling() didn't return the right node"); // 11 (filter called on parent, to see if it's included, otherwise it could skip that and find a nextsibling elsewhere) >+ assertEquals(iteration, 11, "filter called incorrectly for nextSibling()"); >+ assertEquals(w.parentNode(), doc.documentElement.firstChild, "w.parentNode() didn't return the right node"); // 12 >+ assertEquals(w.nextSibling(), doc.documentElement.lastChild, "w.nextSibling() didn't return the right node"); // 13 >+ check(w, "previousSibling"); // 14 >+ check(w, "parentNode"); // 15 >+ return 1; >+ }, >+ function () { >+ // test 2: Removing nodes during iteration >+ var count = 0; >+ var expect = function(n, node1, node2) { >+ count += 1; >+ assert(n == count, "reached expectation " + n + " when expecting expectation " + count); >+ assertEquals(node1, node2, "expectation " + count + " failed"); >+ }; >+ var doc = getTestDocument(); >+ var t1 = doc.body.appendChild(doc.createElement('t1')); >+ var t2 = doc.body.appendChild(doc.createElement('t2')); >+ var t3 = doc.body.appendChild(doc.createElement('t3')); >+ var t4 = doc.body.appendChild(doc.createElement('t4')); >+ var callCount = 0; >+ var filterFunctions = [ >+ function (node) { expect(1, node, doc.body); return true; }, // filter 0 >+ function (node) { expect(3, node, t1); return true; }, // filter 1 >+ function (node) { expect(5, node, t2); return true; }, // filter 2 >+ function (node) { expect(7, node, t3); doc.body.removeChild(t4); return true; }, // filter 3 >+ function (node) { expect(9, node, t4); return true; }, // filter 4 >+ function (node) { expect(11, node, t4); doc.body.removeChild(t4); return 2 /* REJECT */; }, // filter 5 >+ function (node) { expect(12, node, t3); return true; }, // filter 6 >+ function (node) { expect(14, node, t2); doc.body.removeChild(t2); return true; }, // filter 7 >+ function (node) { expect(16, node, t1); return true; }, // filter 8 >+ ]; >+ var i = doc.createNodeIterator(doc.documentElement.lastChild, 0xFFFFFFFF, function (node) { return filterFunctions[callCount++](node); }, true); >+ // * B 1 2 3 4 >+ expect(2, i.nextNode(), doc.body); // filter 0 >+ // [B] * 1 2 3 4 >+ expect(4, i.nextNode(), t1); // filter 1 >+ // B [1] * 2 3 4 >+ expect(6, i.nextNode(), t2); // filter 2 >+ // B 1 [2] * 3 4 >+ expect(8, i.nextNode(), t3); // filter 3 >+ // B 1 2 [3] * >+ doc.body.appendChild(t4); >+ // B 1 2 [3] * 4 >+ expect(10, i.nextNode(), t4); // filter 4 >+ // B 1 2 3 [4] * >+ expect(13, i.previousNode(), t3); // filters 5, 6 >+ // B 1 2 3 * (4) // filter 5 >+ // B 1 2 [3] * // between 5 and 6 >+ // B 1 2 * (3) // filter 6 >+ // B 1 2 * [3] >+ expect(15, i.previousNode(), t2); // filter 7 >+ // B 1 * (2) [3] >+ // -- spec says "For instance, if a NodeFilter removes a node >+ // from a document, it can still accept the node, which >+ // means that the node may be returned by the NodeIterator >+ // or TreeWalker even though it is no longer in the subtree >+ // being traversed." >+ // -- but it also says "If changes to the iterated list do not >+ // remove the reference node, they do not affect the state >+ // of the NodeIterator." >+ // B 1 * [3] >+ expect(17, i.previousNode(), t1); // filter 8 >+ // B [1] * 3 >+ return 1; >+ }, >+ function () { >+ // test 3: the infinite iterator >+ var doc = getTestDocument(); >+ for (var i = 0; i < 5; i += 1) { >+ doc.body.appendChild(doc.createElement('section')); >+ doc.body.lastChild.title = i; >+ } >+ var count = 0; >+ var test = function() { >+ if (count > 3 && count < 12) >+ doc.body.appendChild(doc.body.firstChild); >+ count += 1; >+ return (count % 2 == 0) ? 1 : 2; >+ }; >+ var i = doc.createNodeIterator(doc.body, 0xFFFFFFFF, test, true); >+ assertEquals(i.nextNode().title, "0", "failure 1"); >+ assertEquals(i.nextNode().title, "2", "failure 2"); >+ assertEquals(i.nextNode().title, "4", "failure 3"); >+ assertEquals(i.nextNode().title, "1", "failure 4"); >+ assertEquals(i.nextNode().title, "3", "failure 5"); >+ assertEquals(i.nextNode().title, "0", "failure 6"); >+ assertEquals(i.nextNode().title, "2", "failure 7"); >+ assertEquals(i.nextNode(), null, "failure 8"); >+ return 1; >+ }, >+ function () { >+ // test 4: ignoring whitespace text nodes with node iterators >+ var count = 0; >+ var expect = function(node1, node2) { >+ count += 1; >+ assertEquals(node1, node2, "expectation " + count + " failed"); >+ }; >+ var allButWS = function (node) { >+ if (node.nodeType == 3 && node.data.match(/^\s*$/)) >+ return 2; >+ return 1; >+ }; >+ var i = document.createNodeIterator(document.body, 0x01 | 0x04 | 0x08 | 0x10 | 0x20, allButWS, true); >+ // now walk the document body and make sure everything is in the right place >+ expect(i.nextNode(), document.body); // 1 >+ expect(i.nextNode(), document.getElementsByTagName('h1')[0]); >+ expect(i.nextNode(), document.getElementsByTagName('h1')[0].firstChild); >+ expect(i.nextNode(), document.getElementsByTagName('div')[0]); >+ expect(i.nextNode(), document.getElementById('bucket1')); >+ expect(i.nextNode(), document.getElementById('bucket2')); >+ expect(i.nextNode(), document.getElementById('bucket3')); >+ expect(i.nextNode(), document.getElementById('bucket4')); >+ expect(i.nextNode(), document.getElementById('bucket5')); >+ expect(i.nextNode(), document.getElementById('bucket6')); // 10 >+ expect(i.nextNode(), document.getElementById('result')); >+ expect(i.nextNode(), document.getElementById('score')); >+ expect(i.nextNode(), document.getElementById('score').firstChild); >+ expect(i.nextNode(), document.getElementById('slash')); >+ expect(i.nextNode(), document.getElementById('slash').firstChild); >+ expect(i.nextNode(), document.getElementById('slash').nextSibling); >+ expect(i.nextNode(), document.getElementById('slash').nextSibling.firstChild); >+ expect(i.nextNode(), document.getElementsByTagName('map')[0]); >+ expect(i.nextNode(), document.getElementsByTagName('area')[0]); >+ expect(i.nextNode(), document.getElementsByTagName('iframe')[0]); // 20 >+ expect(i.nextNode(), document.getElementsByTagName('iframe')[0].firstChild); >+ expect(i.nextNode(), document.getElementsByTagName('iframe')[1]); >+ expect(i.nextNode(), document.getElementsByTagName('iframe')[1].firstChild); >+ expect(i.nextNode(), document.getElementsByTagName('iframe')[2]); >+ expect(i.nextNode(), document.forms[0]); >+ expect(i.nextNode(), document.forms.form.elements[0]); >+ expect(i.nextNode(), document.getElementsByTagName('table')[0]); >+ expect(i.nextNode(), document.getElementsByTagName('tbody')[0]); >+ expect(i.nextNode(), document.getElementsByTagName('tr')[0]); >+ expect(i.nextNode(), document.getElementsByTagName('td')[0]); >+ expect(i.nextNode(), document.getElementsByTagName('td')[0].getElementsByTagName('p')[0]); >+ expect(i.nextNode(), document.getElementById('instructions')); >+ expect(i.nextNode(), document.getElementById('instructions').firstChild); >+ expect(i.nextNode().nodeName, "SPAN"); >+ expect(i.nextNode().nodeName, "#text"); >+ expect(i.nextNode(), document.links[1]); >+ expect(i.nextNode(), document.links[1].firstChild); >+ expect(i.nextNode(), document.getElementById('instructions').lastChild); >+ expect(i.nextNode(), null); >+ // walk it backwards for good measure >+ expect(i.previousNode(), document.getElementById('instructions').lastChild); >+ expect(i.previousNode(), document.links[1].firstChild); >+ expect(i.previousNode(), document.links[1]); >+ expect(i.previousNode().nodeName, "#text"); >+ expect(i.previousNode().nodeName, "SPAN"); >+ expect(i.previousNode(), document.getElementById('instructions').firstChild); >+ expect(i.previousNode(), document.getElementById('instructions')); >+ expect(i.previousNode(), document.getElementsByTagName('td')[0].getElementsByTagName('p')[0]); >+ expect(i.previousNode(), document.getElementsByTagName('td')[0]); >+ expect(i.previousNode(), document.getElementsByTagName('tr')[0]); >+ expect(i.previousNode(), document.getElementsByTagName('tbody')[0]); >+ expect(i.previousNode(), document.getElementsByTagName('table')[0]); >+ expect(i.previousNode(), document.forms.form.elements[0]); >+ expect(i.previousNode(), document.forms[0]); >+ expect(i.previousNode(), document.getElementsByTagName('iframe')[2]); >+ expect(i.previousNode(), document.getElementsByTagName('iframe')[1].firstChild); >+ expect(i.previousNode(), document.getElementsByTagName('iframe')[1]); >+ expect(i.previousNode(), document.getElementsByTagName('iframe')[0].firstChild); >+ expect(i.previousNode(), document.getElementsByTagName('iframe')[0]); // 20 >+ expect(i.previousNode(), document.getElementsByTagName('area')[0]); >+ expect(i.previousNode(), document.getElementsByTagName('map')[0]); >+ expect(i.previousNode(), document.getElementById('slash').nextSibling.firstChild); >+ expect(i.previousNode(), document.getElementById('slash').nextSibling); >+ expect(i.previousNode(), document.getElementById('slash').firstChild); >+ expect(i.previousNode(), document.getElementById('slash')); >+ expect(i.previousNode(), document.getElementById('score').firstChild); >+ expect(i.previousNode(), document.getElementById('score')); >+ expect(i.previousNode(), document.getElementById('result')); >+ expect(i.previousNode(), document.getElementById('bucket6')); >+ expect(i.previousNode(), document.getElementById('bucket5')); >+ expect(i.previousNode(), document.getElementById('bucket4')); >+ expect(i.previousNode(), document.getElementById('bucket3')); >+ expect(i.previousNode(), document.getElementById('bucket2')); >+ expect(i.previousNode(), document.getElementById('bucket1')); >+ expect(i.previousNode(), document.getElementsByTagName('div')[0]); >+ expect(i.previousNode(), document.getElementsByTagName('h1')[0].firstChild); >+ expect(i.previousNode(), document.getElementsByTagName('h1')[0]); >+ expect(i.previousNode(), document.body); >+ expect(i.previousNode(), null); >+ return 1; >+ }, >+ function () { >+ // test 5: ignoring whitespace text nodes with tree walkers >+ var count = 0; >+ var expect = function(node1, node2) { >+ count += 1; >+ assertEquals(node1, node2, "expectation " + count + " failed"); >+ }; >+ var allButWS = function (node) { >+ if (node.nodeType == 3 && node.data.match(/^\s*$/)) >+ return 3; >+ return 1; >+ }; >+ var w = document.createTreeWalker(document.body, 0x01 | 0x04 | 0x08 | 0x10 | 0x20, allButWS, true); >+ expect(w.currentNode, document.body); >+ expect(w.parentNode(), null); >+ expect(w.currentNode, document.body); >+ expect(w.firstChild(), document.getElementsByTagName('h1')[0]); >+ expect(w.firstChild().nodeType, 3); >+ expect(w.parentNode(), document.getElementsByTagName('h1')[0]); >+ expect(w.nextSibling().previousSibling.nodeType, 3); >+ expect(w.nextSibling(), document.getElementsByTagName('p')[6]); >+ expect(w.nextSibling(), document.getElementsByTagName('map')[0]); >+ expect(w.lastChild(), document.getElementsByTagName('table')[0]); >+ expect(w.lastChild(), document.getElementsByTagName('tbody')[0]); >+ expect(w.nextNode(), document.getElementsByTagName('tr')[0]); >+ expect(w.nextNode(), document.getElementsByTagName('td')[0]); >+ expect(w.nextNode(), document.getElementsByTagName('p')[7]); >+ expect(w.nextNode(), document.getElementsByTagName('p')[8]); // instructions.inc paragraph >+ expect(w.previousSibling(), document.getElementsByTagName('map')[0]); >+ expect(w.previousNode().data, "100"); >+ expect(w.parentNode().tagName, "SPAN"); >+ expect(w.parentNode(), document.getElementById('result')); >+ expect(w.parentNode(), document.body); >+ expect(w.lastChild().id, "instructions"); >+ expect(w.lastChild().data.substr(0,1), "."); >+ expect(w.previousNode(), document.links[1].firstChild); >+ return 1; >+ }, >+ function () { >+ // test 6: walking outside a tree >+ var doc = getTestDocument(); >+ var p = doc.createElement('p'); >+ doc.body.appendChild(p); >+ var b = doc.body; >+ var w = document.createTreeWalker(b, 0xFFFFFFFF, null, true); >+ assertEquals(w.currentNode, b, "basic use of TreeWalker failed: currentNode"); >+ assertEquals(w.lastChild(), p, "basic use of TreeWalker failed: lastChild()"); >+ assertEquals(w.previousNode(), b, "basic use of TreeWalker failed: previousNode()"); >+ doc.documentElement.removeChild(b); >+ assertEquals(w.lastChild(), p, "TreeWalker failed after removing the current node from the tree"); >+ assertEquals(w.nextNode(), null, "failed to walk into the end of a subtree"); >+ doc.documentElement.appendChild(p); >+ assertEquals(w.previousNode(), doc.getElementsByTagName('title')[0], "failed to handle regrafting correctly"); >+ p.appendChild(b); >+ assertEquals(w.nextNode(), p, "couldn't retrace steps"); >+ assertEquals(w.nextNode(), b, "couldn't step back into root"); >+ assertEquals(w.previousNode(), null, "root didn't retake its rootish position"); >+ return 1; >+ }, >+ >+ // DOM Range >+ function () { >+ // test 7: basic ranges tests >+ var r = document.createRange(); >+ assert(r, "range not created"); >+ assert(r.collapsed, "new range wasn't collapsed"); >+ assertEquals(r.commonAncestorContainer, document, "new range's common ancestor wasn't the document"); >+ assertEquals(r.startContainer, document, "new range's start container wasn't the document"); >+ assertEquals(r.startOffset, 0, "new range's start offset wasn't zero"); >+ assertEquals(r.endContainer, document, "new range's end container wasn't the document"); >+ assertEquals(r.endOffset, 0, "new range's end offset wasn't zero"); >+ assert(r.cloneContents(), "cloneContents() didn't return an object"); >+ assertEquals(r.cloneContents().childNodes.length, 0, "nothing cloned was more than nothing"); >+ assertEquals(r.cloneRange().toString(), "", "nothing cloned stringifed to more than nothing"); >+ r.collapse(true); // no effect >+ assertEquals(r.compareBoundaryPoints(r.START_TO_END, r.cloneRange()), 0, "starting boundary point of range wasn't the same as the end boundary point of the clone range"); >+ r.deleteContents(); // no effect >+ assertEquals(r.extractContents().childNodes.length, 0, "nothing removed was more than nothing"); >+ var endOffset = r.endOffset; >+ r.insertNode(document.createComment("commented inserted to test ranges")); >+ r.setEnd(r.endContainer, endOffset + 1); // added to work around spec bug that smaug is blocking the errata for >+ try { >+ assert(!r.collapsed, "range with inserted comment is collapsed"); >+ assertEquals(r.commonAncestorContainer, document, "range with inserted comment has common ancestor that isn't the document"); >+ assertEquals(r.startContainer, document, "range with inserted comment has start container that isn't the document"); >+ assertEquals(r.startOffset, 0, "range with inserted comment has start offset that isn't zero"); >+ assertEquals(r.endContainer, document, "range with inserted comment has end container that isn't the document"); >+ assertEquals(r.endOffset, 1, "range with inserted comment has end offset that isn't after the comment"); >+ } finally { >+ document.removeChild(document.firstChild); >+ } >+ return 1; >+ }, >+ function () { >+ // test 8: moving boundary points >+ var doc = document.implementation.createDocument(null, null, null); >+ var root = doc.createElement("root"); >+ doc.appendChild(root); >+ var e1 = doc.createElement("e"); >+ root.appendChild(e1); >+ var e2 = doc.createElement("e"); >+ root.appendChild(e2); >+ var e3 = doc.createElement("e"); >+ root.appendChild(e3); >+ var r = doc.createRange(); >+ r.setStart(e2, 0); >+ r.setEnd(e3, 0); >+ assert(!r.collapsed, "non-empty range claims to be collapsed"); >+ r.setEnd(e1, 0); >+ assert(r.collapsed, "setEnd() didn't collapse the range"); >+ assertEquals(r.startContainer, e1, "startContainer is wrong after setEnd()"); >+ assertEquals(r.startOffset, 0, "startOffset is wrong after setEnd()"); >+ assertEquals(r.endContainer, e1, "endContainer is wrong after setEnd()"); >+ assertEquals(r.endOffset, 0, "endOffset is wrong after setEnd()"); >+ r.setStartBefore(e3); >+ assert(r.collapsed, "setStartBefore() didn't collapse the range"); >+ assertEquals(r.startContainer, root, "startContainer is wrong after setStartBefore()"); >+ assertEquals(r.startOffset, 2, "startOffset is wrong after setStartBefore()"); >+ assertEquals(r.endContainer, root, "endContainer is wrong after setStartBefore()"); >+ assertEquals(r.endOffset, 2, "endOffset is wrong after setStartBefore()"); >+ r.setEndAfter(root); >+ assert(!r.collapsed, "setEndAfter() didn't uncollapse the range"); >+ assertEquals(r.startContainer, root, "startContainer is wrong after setEndAfter()"); >+ assertEquals(r.startOffset, 2, "startOffset is wrong after setEndAfter()"); >+ assertEquals(r.endContainer, doc, "endContainer is wrong after setEndAfter()"); >+ assertEquals(r.endOffset, 1, "endOffset is wrong after setEndAfter()"); >+ r.setStartAfter(e2); >+ assert(!r.collapsed, "setStartAfter() collapsed the range"); >+ assertEquals(r.startContainer, root, "startContainer is wrong after setStartAfter()"); >+ assertEquals(r.startOffset, 2, "startOffset is wrong after setStartAfter()"); >+ assertEquals(r.endContainer, doc, "endContainer is wrong after setStartAfter()"); >+ assertEquals(r.endOffset, 1, "endOffset is wrong after setStartAfter()"); >+ var msg = ''; >+ try { >+ r.setEndBefore(doc); >+ msg = "no exception thrown for setEndBefore() the document itself"; >+ } catch (e) { >+// COMMENTED OUT FOR 2011 UPDATE - we may want to merge RangeException and DOMException >+// if (e.BAD_BOUNDARYPOINTS_ERR != 1) >+// msg = 'not a RangeException'; >+// else >+// if (e.INVALID_NODE_TYPE_ERR != 2) >+// msg = 'RangeException has no INVALID_NODE_TYPE_ERR'; >+// else >+// if ("INVALID_ACCESS_ERR" in e) >+// msg = 'RangeException has DOMException constants'; >+// else >+ if (e.code != e.INVALID_NODE_TYPE_ERR) >+ msg = 'wrong exception raised from setEndBefore()'; >+ } >+ assert(msg == "", msg); >+ assert(!r.collapsed, "setEndBefore() collapsed the range"); >+ assertEquals(r.startContainer, root, "startContainer is wrong after setEndBefore()"); >+ assertEquals(r.startOffset, 2, "startOffset is wrong after setEndBefore()"); >+ assertEquals(r.endContainer, doc, "endContainer is wrong after setEndBefore()"); >+ assertEquals(r.endOffset, 1, "endOffset is wrong after setEndBefore()"); >+ r.collapse(false); >+ assert(r.collapsed, "collapse() collapsed the range"); >+ assertEquals(r.startContainer, doc, "startContainer is wrong after collapse()"); >+ assertEquals(r.startOffset, 1, "startOffset is wrong after collapse()"); >+ assertEquals(r.endContainer, doc, "endContainer is wrong after collapse()"); >+ assertEquals(r.endOffset, 1, "endOffset is wrong after collapse()"); >+ r.selectNodeContents(root); >+ assert(!r.collapsed, "collapsed is wrong after selectNodeContents()"); >+ assertEquals(r.startContainer, root, "startContainer is wrong after selectNodeContents()"); >+ assertEquals(r.startOffset, 0, "startOffset is wrong after selectNodeContents()"); >+ assertEquals(r.endContainer, root, "endContainer is wrong after selectNodeContents()"); >+ assertEquals(r.endOffset, 3, "endOffset is wrong after selectNodeContents()"); >+ r.selectNode(e2); >+ assert(!r.collapsed, "collapsed is wrong after selectNode()"); >+ assertEquals(r.startContainer, root, "startContainer is wrong after selectNode()"); >+ assertEquals(r.startOffset, 1, "startOffset is wrong after selectNode()"); >+ assertEquals(r.endContainer, root, "endContainer is wrong after selectNode()"); >+ assertEquals(r.endOffset, 2, "endOffset is wrong after selectNode()"); >+ return 1; >+ }, >+ function () { >+ // test 9: extractContents() in a Document >+ var doc = getTestDocument(); >+ var h1 = doc.createElement('h1'); >+ var t1 = doc.createTextNode('Hello '); >+ h1.appendChild(t1); >+ var em = doc.createElement('em'); >+ var t2 = doc.createTextNode('Wonderful'); >+ em.appendChild(t2); >+ h1.appendChild(em); >+ var t3 = doc.createTextNode(' Kitty'); >+ h1.appendChild(t3); >+ doc.body.appendChild(h1); >+ var p = doc.createElement('p'); >+ var t4 = doc.createTextNode('How are you?'); >+ p.appendChild(t4); >+ doc.body.appendChild(p); >+ var r = doc.createRange(); >+ r.selectNodeContents(doc); >+ assertEquals(r.toString(), "Hello Wonderful KittyHow are you?", "toString() on range selecting Document gave wrong output"); >+ r.setStart(t2, 6); >+ r.setEnd(p, 0); >+ // <body><h1>Hello <em>Wonder ful<\em> Kitty<\h1><p> How are you?<\p><\body> (the '\'s are to avoid validation errors) >+ // ^----------------------^ >+ assertEquals(r.toString(), "ful Kitty", "toString() on range crossing text nodes gave wrong output"); >+ var f = r.extractContents(); >+ // <h1><em>ful<\em> Kitty<\h1><p><\p> >+ // ccccccccccccccccMMMMMMcccccccccccc >+ assertEquals(f.nodeType, 11, "failure 1"); >+ assert(f.childNodes.length == 2, "expected two children in the result, got " + f.childNodes.length); >+ assertEquals(f.childNodes[0].tagName, "H1", "failure 3"); >+ assert(f.childNodes[0] != h1, "failure 4"); >+ assertEquals(f.childNodes[0].childNodes.length, 2, "failure 5"); >+ assertEquals(f.childNodes[0].childNodes[0].tagName, "EM", "failure 6"); >+ assert(f.childNodes[0].childNodes[0] != em, "failure 7"); >+ assertEquals(f.childNodes[0].childNodes[0].childNodes.length, 1, "failure 8"); >+ assertEquals(f.childNodes[0].childNodes[0].childNodes[0].data, "ful", "failure 9"); >+ assert(f.childNodes[0].childNodes[0].childNodes[0] != t2, "failure 10"); >+ assertEquals(f.childNodes[0].childNodes[1], t3, "failure 11"); >+ assert(f.childNodes[0].childNodes[1] != em, "failure 12"); >+ assertEquals(f.childNodes[1].tagName, "P", "failure 13"); >+ assertEquals(f.childNodes[1].childNodes.length, 0, "failure 14"); >+ assert(f.childNodes[1] != p, "failure 15"); >+ return 1; >+ }, >+ function () { >+ // test 10: Ranges and Attribute Nodes >+// COMMENTED OUT FOR 2011 UPDATE - turns out instead of dropping Attr entirely, as Acid3 originally expected, the API is just being refactored >+// var e = document.getElementById('result'); >+// if (!e.getAttributeNode) >+// return 1; // support for attribute nodes is optional in Acid3, because attribute nodes might be removed from DOM Core in the future. >+// // however, if they're supported, they'd better work: >+// var a = e.getAttributeNode('id'); >+// var r = document.createRange(); >+// r.selectNodeContents(a); >+// assertEquals(r.toString(), "result", "toString() didn't work for attribute node"); >+// var t = a.firstChild; >+// var f = r.extractContents(); >+// assertEquals(f.childNodes.length, 1, "extracted contents were the wrong length"); >+// assertEquals(f.childNodes[0], t, "extracted contents were the wrong node"); >+// assertEquals(t.textContent, 'result', "extracted contents didn't match old attribute value"); >+// assertEquals(r.toString(), '', "extracting contents didn't empty attribute value; instead equals '" + r.toString() + "'"); >+// assertEquals(e.getAttribute('id'), '', "extracting contents didn't change 'id' attribute to empty string"); >+// e.id = 'result'; >+ return 1; >+ }, >+ function () { >+ // test 11: Ranges and Comments >+ var msg; >+ var doc = getTestDocument(); >+ var c1 = doc.createComment("11111"); >+ doc.appendChild(c1); >+ var r = doc.createRange(); >+ r.selectNode(c1); >+ msg = 'wrong exception raised'; >+ try { >+ r.surroundContents(doc.createElement('a')); >+ msg = 'no exception raised'; >+ } catch (e) { >+ if ('code' in e) >+ msg += '; code = ' + e.code; >+ if (e.code == 3) // HIERARCHY_REQUEST_ERR >+ msg = ''; >+ } >+ assert(msg == '', "when inserting <a> into Document with another child: " + msg); >+ var c2 = doc.createComment("22222"); >+ doc.body.appendChild(c2); >+ var c3 = doc.createComment("33333"); >+ doc.body.appendChild(c3); >+ r.setStart(c2, 2); >+ r.setEnd(c3, 3); >+ var msg = 'wrong exception raised'; >+ try { >+ r.surroundContents(doc.createElement('a')); >+ msg = 'no exception raised'; >+ } catch (e) { >+// COMMENTED OUT FOR 2011 UPDATE - DOM Core changes the exception from RangeException.BAD_BOUNDARYPOINTS_ERR (1) to DOMException.INVALID_STATE_ERR (11) >+// if ('code' in e) >+// msg += '; code = ' + e.code; >+// if (e.code == 1) >+ msg = ''; >+ } >+ assert(msg == '', "when trying to surround two halves of comment: " + msg); >+ assertEquals(r.toString(), "", "comments returned text"); >+ return 1; >+ }, >+ function () { >+ // test 12: Ranges under mutations: insertion into text nodes >+ var doc = getTestDocument(); >+ var p = doc.createElement('p'); >+ var t1 = doc.createTextNode('12345'); >+ p.appendChild(t1); >+ var t2 = doc.createTextNode('ABCDE'); >+ p.appendChild(t2); >+ doc.body.appendChild(p); >+ var r = doc.createRange(); >+ r.setStart(p.firstChild, 2); >+ r.setEnd(p.firstChild, 3); >+ assert(!r.collapsed, "collapsed is wrong at start"); >+ assertEquals(r.commonAncestorContainer, p.firstChild, "commonAncestorContainer is wrong at start"); >+ assertEquals(r.startContainer, p.firstChild, "startContainer is wrong at start"); >+ assertEquals(r.startOffset, 2, "startOffset is wrong at start"); >+ assertEquals(r.endContainer, p.firstChild, "endContainer is wrong at start"); >+ assertEquals(r.endOffset, 3, "endOffset is wrong at start"); >+ assertEquals(r.toString(), "3", "range in text node stringification failed"); >+ r.insertNode(p.lastChild); >+ assertEquals(p.childNodes.length, 3, "insertion of node made wrong number of child nodes"); >+ assertEquals(p.childNodes[0], t1, "unexpected first text node"); >+ assertEquals(p.childNodes[0].data, "12", "unexpected first text node contents"); >+ assertEquals(p.childNodes[1], t2, "unexpected second text node"); >+ assertEquals(p.childNodes[1].data, "ABCDE", "unexpected second text node"); >+ assertEquals(p.childNodes[2].data, "345", "unexpected third text node contents"); >+ // The spec is very vague about what exactly should be in the range afterwards: >+ // the insertion results in a splitText(), which it says is equivalent to a truncation >+ // followed by an insertion, but it doesn't say what to do when you have a truncation, >+ // so we don't know where either the start or the end boundary points end up. >+ // The spec really should be clarified for how to handle splitText() and >+ // text node truncation in general >+ // The only thing that seems very clear is that the inserted text node should >+ // be in the range, and it has to be at the start, since insertion always puts it at >+ // the start. >+ assert(!r.collapsed, "collapsed is wrong after insertion"); >+ assert(r.toString().match(/^ABCDE/), "range didn't start with the expected text; range stringified to '" + r.toString() + "'"); >+ return 1; >+ }, >+ function () { >+ // test 13: Ranges under mutations: deletion >+ var doc = getTestDocument(); >+ var p = doc.createElement('p'); >+ p.appendChild(doc.createTextNode("12345")); >+ doc.body.appendChild(p); >+ var r = doc.createRange(); >+ r.setEnd(doc.body, 1); >+ r.setStart(p.firstChild, 2); >+ assert(!r.collapsed, "collapsed is wrong at start"); >+ assertEquals(r.commonAncestorContainer, doc.body, "commonAncestorContainer is wrong at start"); >+ assertEquals(r.startContainer, p.firstChild, "startContainer is wrong at start"); >+ assertEquals(r.startOffset, 2, "startOffset is wrong at start"); >+ assertEquals(r.endContainer, doc.body, "endContainer is wrong at start"); >+ assertEquals(r.endOffset, 1, "endOffset is wrong at start"); >+ doc.body.removeChild(p); >+ assert(r.collapsed, "collapsed is wrong after deletion"); >+ assertEquals(r.commonAncestorContainer, doc.body, "commonAncestorContainer is wrong after deletion"); >+ assertEquals(r.startContainer, doc.body, "startContainer is wrong after deletion"); >+ assertEquals(r.startOffset, 0, "startOffset is wrong after deletion"); >+ assertEquals(r.endContainer, doc.body, "endContainer is wrong after deletion"); >+ assertEquals(r.endOffset, 0, "endOffset is wrong after deletion"); >+ return 1; >+ }, >+ >+ // HTTP >+ function () { >+ // test 14: HTTP - Content-Type: image/png >+ assert(!notifications['empty.png'], "privilege escalation security bug: PNG ran script"); >+ var iframe = document.getElementsByTagName('iframe')[0]; >+ assert(iframe, "no <iframe> support"); >+ if (iframe && iframe.contentDocument) { >+ var ps = iframe.contentDocument.getElementsByTagName('p'); >+ if (ps.length > 0) { >+ if (ps[0].firstChild && ps[0].firstChild.data && ps[0].firstChild.data == 'FAIL') >+ fail("PNG was parsed as HTML."); >+ } >+ } >+ return 1; >+ }, >+ function () { >+ // test 15: HTTP - Content-Type: text/plain >+ assert(!notifications['empty.txt'], "privilege escalation security bug: text file ran script"); >+ var iframe = document.getElementsByTagName('iframe')[1]; >+ assert(iframe, "no <iframe> support"); >+ if (iframe && iframe.contentDocument) { >+ var ps = iframe.contentDocument.getElementsByTagName('p'); >+ if (ps.length > 0) { >+ if (ps[0].firstChild && ps[0].firstChild.data && ps[0].firstChild.data == 'FAIL') >+ fail("text/plain file was parsed as HTML"); >+ } >+ } >+ return 1; >+ }, >+ function () { >+ // test 16: <object> handling and HTTP status codes >+ var oC = document.createElement('object'); >+ oC.appendChild(document.createTextNode("FAIL")); >+ var oB = document.createElement('object'); >+ var oA = document.createElement('object'); >+ oA.data = "support-a.png?pipe=status(404)"; >+ oB.data = "support-b.png"; >+ oB.appendChild(oC); >+ oC.data = "support-c.png"; >+ oA.appendChild(oB); >+ document.getElementsByTagName("map")[0].appendChild(oA); >+ // assuming the above didn't raise any exceptions, this test has passed >+ // (the real test is whether the rendering is correct) >+ return 1; >+ }, >+ >+ // bucket 2: DOM2 Core and DOM2 Events >+ // Core >+ function () { >+ // test 17: hasAttribute >+ // missing attribute >+ assert(!document.getElementsByTagName('map')[0].hasAttribute('id'), "hasAttribute failure for 'id' on map"); >+ // implied attribute >+ assert(!document.getElementsByTagName('form')[0].hasAttribute('method'), "hasAttribute failure for 'method' on form"); >+ // actually present attribute >+ assert(document.getElementsByTagName('form')[0].hasAttribute('action'), "hasAttribute failure for 'action' on form"); >+ assertEquals(document.getElementsByTagName('form')[0].getAttribute('action'), '', "attribute 'action' on form has wrong value"); >+ return 2; >+ }, >+ function () { >+ // test 18: nodeType (this test also relies on accurate parsing of the document) >+ assertEquals(document.nodeType, 9, "document nodeType wrong"); >+ assertEquals(document.documentElement.nodeType, 1, "element nodeType wrong"); >+// COMMENTED OUT FOR 2011 UPDATE - turns out instead of dropping Attr entirely, as Acid3 originally expected, the API is just being refactored >+// if (document.createAttribute) // support for attribute nodes is optional in Acid3, because attribute nodes might be removed from DOM Core in the future. >+// assertEquals(document.createAttribute('test').nodeType, 2, "attribute nodeType wrong"); // however, if they're supported, they'd better work >+ assertEquals(document.getElementById('score').firstChild.nodeType, 3, "text node nodeType wrong"); >+ assertEquals(document.firstChild.nodeType, 10, "DOCTYPE nodeType wrong"); >+ return 2; >+ }, >+ function () { >+ // test 19: value of constants >+ var e = null; >+ try { >+ document.body.appendChild(document.documentElement); >+ // raises a HIERARCHY_REQUEST_ERR >+ } catch (err) { >+ e = err; >+ } >+ assertEquals(document.DOCUMENT_FRAGMENT_NODE, 11, "document DOCUMENT_FRAGMENT_NODE constant missing or wrong"); >+ assertEquals(document.body.COMMENT_NODE, 8, "element COMMENT_NODE constant missing or wrong"); >+ assertEquals(document.createTextNode('').ELEMENT_NODE, 1, "text node ELEMENT_NODE constant missing or wrong"); >+ assert(e.HIERARCHY_REQUEST_ERR == 3, "exception HIERARCHY_REQUEST_ERR constant missing or wrong") >+ assertEquals(e.code, 3, "incorrect exception raised from appendChild()"); >+ return 2; >+ }, >+ function () { >+ // test 20: nulls bytes in various places >+ assert(!document.getElementById('bucket1\0error'), "null in getElementById() probably terminated string"); >+ var ok = true; >+ try { >+ document.createElement('form\0div'); >+ ok = false; >+ } catch (e) { >+ if (e.code != 5) >+ ok = false; >+ } >+ assert(ok, "didn't raise the right exception for null byte in createElement()"); >+ return 2; >+ }, >+ function () { >+ // test 21: basic namespace stuff >+ var element = document.createElementNS('http://ns.example.com/', 'prefix:localname'); >+ assertEquals(element.tagName, 'prefix:localname', "wrong tagName"); >+ assertEquals(element.nodeName, 'prefix:localname', "wrong nodeName"); >+ assertEquals(element.prefix, 'prefix', "wrong prefix"); >+ assertEquals(element.localName, 'localname', "wrong localName"); >+ assertEquals(element.namespaceURI, 'http://ns.example.com/', "wrong namespaceURI"); >+ return 2; >+ }, >+ function () { >+ // test 22: createElement() with invalid tag names >+ var test = function (name) { >+ var result; >+ try { >+ var div = document.createElement(name); >+ } catch (e) { >+ result = e; >+ } >+ assert(result, "no exception for createElement('" + name + "')"); >+ assertEquals(result.code, 5, "wrong exception for createElement('" + name + "')"); // INVALID_CHARACTER_ERR >+ } >+ test('<div>'); >+ test('0div'); >+ test('di v'); >+ test('di<v'); >+ test('-div'); >+ test('.div'); >+ return 2; >+ }, >+ function () { >+ // test 23: createElementNS() with invalid tag names >+ var test = function (name, ns, code) { >+ var result; >+ try { >+ var div = document.createElementNS(ns, name); >+ } catch (e) { >+ result = e; >+ } >+ assert(result, "no exception for createElementNS('" + ns + "', '" + name + "')"); >+ assertEquals(result.code, code, "wrong exception for createElementNS('" + ns + "', '" + name + "')"); >+ } >+ test('<div>', null, 5); >+ test('0div', null, 5); >+ test('di v', null, 5); >+ test('di<v', null, 5); >+ test('-div', null, 5); >+ test('.div', null, 5); >+ test('<div>', "http://example.com/", 5); >+ test('0div', "http://example.com/", 5); >+ test('di<v', "http://example.com/", 5); >+ test('-div', "http://example.com/", 5); >+ test('.div', "http://example.com/", 5); >+ //test(':div', null, 14); >+ //test(':div', "http://example.com/", 14); >+ test('d:iv', null, 14); >+ test('xml:test', "http://example.com/", 14); >+ test('xmlns:test', "http://example.com/", 14); // (technically a DOM3 Core test) >+ test('x:test', "http://www.w3.org/2000/xmlns/", 14); // (technically a DOM3 Core test) >+ document.createElementNS("http://www.w3.org/2000/xmlns/", 'xmlns:test'); // (technically a DOM3 Core test) >+ return 2; >+ }, >+ function () { >+ // test 24: event handler attributes >+ assertEquals(document.body.getAttribute('onload'), "update() /* this attribute's value is tested in one of the tests */ ", "onload value wrong"); >+ return 2; >+ }, >+ function () { >+ // test 25: test namespace checking in createDocumentType, and >+ // check that exceptions that are thrown are DOMException objects >+ var message = ""; >+ try { >+ document.implementation.createDocumentType('a:', '', ''); /* doesn't contain an illegal character; is malformed */ >+ message = "failed to raise exception"; >+ } catch (e) { >+ /*if (e.code != e.NAMESPACE_ERR) >+ message = "wrong exception"; >+ else if (e.INVALID_ACCESS_ERR != 15) >+ message = "exceptions don't have all the constants";*/ >+ } >+ if (message) >+ fail(message); >+ return 2; >+ }, >+ function () { >+ // test 26: check that document tree survives while still accessible >+ var d; >+ // e1 - an element that's in a document >+ d = document.implementation.createDocument(null, null, null); >+ var e1 = d.createElement('test'); >+ d.appendChild(d.createElement('root')); >+ d.documentElement.appendChild(e1); >+ assert(e1.parentNode, "e1 - parent element doesn't exist"); >+ assert(e1.parentNode.ownerDocument, "e1 - document doesn't exist"); >+ // e2 - an element that's not in a document >+ d = document.implementation.createDocument(null, null, null); >+ var e2 = d.createElement('test'); >+ d.createElement('root').appendChild(e2); >+ assert(e2.parentNode, "e2 - parent element doesn't exist"); >+ assert(e2.parentNode.ownerDocument, "e2 - document doesn't exist"); >+ // now try to decouple them >+ d = null; >+ kungFuDeathGrip = [e1, e2]; >+ assert(e1.parentNode, "e1 - parent element doesn't exist after dropping reference to document"); >+ assert(e1.parentNode.ownerDocument, "e1 - document doesn't exist after dropping reference to document"); >+ assert(e2.parentNode, "e2 - parent element doesn't exist after dropping reference to document"); >+ assert(e2.parentNode.ownerDocument, "e2 - document doesn't exist after dropping reference to document"); >+ var loops = new Date().valueOf() * 2.813435e-9 - 2412; // increases linearly over time >+ for (var i = 0; i < loops; i += 1) { >+ // we want to force a GC here, so we use up lots of memory >+ // we take the opportunity to sneak in a perf test to make DOM and JS stuff faster... >+ d = new Date(); >+ d = new (function (x) { return { toString: function () { return x.toString() } } })(d.valueOf()); >+ d = document.createTextNode("iteration " + i + " at " + d); >+ document.createElement('a').appendChild(d); >+ d = d.parentNode; >+ document.body.insertBefore(d, document.getElementById('bucket1').parentNode); >+ assert(document.getElementById('bucket2').nextSibling.parentNode.previousSibling.firstChild.data.match(/AT\W/i), "iteration " + i + " failed"); >+ d.setAttribute('class', d.textContent); >+ document.body.removeChild(d); >+ } >+ assert(e1.parentNode, "e1 - parent element doesn't exist after looping"); >+ assert(e1.parentNode.ownerDocument, "e1 - document doesn't exist after looping"); >+ assertEquals(e1.parentNode.ownerDocument.nodeType, 9, "e1 - document node type has wrong node type"); >+ assert(e2.parentNode, "e2 - parent element doesn't exist after looping"); >+ assert(e2.parentNode.ownerDocument, "e2 - document doesn't exist after looping"); >+ assertEquals(e2.parentNode.ownerDocument.nodeType, 9, "e2 - document node type has wrong node type"); >+ return 2; >+ }, >+ function () { >+ // test 27: a continuation of the previous test >+ var e1 = kungFuDeathGrip[0]; >+ var e2 = kungFuDeathGrip[1]; >+ kungFuDeathGrip = null; >+ assert(e1, "e1 - element itself didn't survive across tests"); >+ assert(e1.parentNode, "e1 - parent element doesn't exist after waiting"); >+ assert(e1.parentNode.ownerDocument, "e1 - document doesn't exist after waiting"); >+ assertEquals(e1.parentNode.ownerDocument.nodeType, 9, "e1 - document node type has wrong node type after waiting"); >+ assert(e2, "e2 - element itself didn't survive across tests"); >+ assert(e2.parentNode, "e2 - parent element doesn't exist after waiting"); >+ assert(e2.parentNode.ownerDocument, "e2 - document doesn't exist after waiting"); >+ assertEquals(e2.parentNode.ownerDocument.nodeType, 9, "e2 - document node type has wrong node type after waiting"); >+ return 2; >+ }, >+ function () { >+ // test 28: getElementById() >+ // ...and name="" >+ assert(document.getElementById('form') !== document.getElementsByTagName('form')[0], "getElementById() searched on 'name'"); >+ // ...and a space character as the ID >+ var div = document.createElement('div'); >+ div.appendChild(document.createTextNode('FAIL')); >+ div.id = " "; >+ document.body.appendChild(div); // it's hidden by CSS >+ assert(div === document.getElementById(" "), "getElementById() didn't return the right element"); >+ return 2; >+ }, >+ function () { >+ // test 29: check that whitespace survives cloning >+ var t1 = document.getElementsByTagName('table')[0]; >+ var t2 = t1.cloneNode(true); >+ assertEquals(t2.tBodies[0].rows[0].cells[0].firstChild.tagName, 'P', "<p> didn't clone right"); >+ assertEquals(t2.tBodies[0].rows[0].cells[0].firstChild.childNodes.length, 0, "<p> got child nodes after cloning"); >+ assertEquals(t2.childNodes.length, 2, "cloned table had wrong number of children"); >+ assertEquals(t2.lastChild.data, " ", "cloned table lost whitespace text node"); >+ return 2; >+ }, >+ >+ // Events >+ function () { >+ // test 30: dispatchEvent() >+ var count = 0; >+ var ok = true; >+ var test = function (event) { >+ if (event.detail != 6) >+ ok = false; >+ count++; >+ }; >+ // test event listener addition >+ document.getElementById('result').addEventListener('test', test, false); >+ // test event creation >+ var event = document.createEvent('UIEvents'); >+ event.initUIEvent('test', true, false, null, 6); >+ // test event dispatch on elements and text nodes >+ assert(document.getElementById('score').dispatchEvent(event), "dispatchEvent #1 failed"); >+ assert(document.getElementById('score').nextSibling.dispatchEvent(event), "dispatchEvent #2 failed"); >+ // test event listener removal >+ document.getElementById('result').removeEventListener('test', test, false); >+ assert(document.getElementById('score').dispatchEvent(event), "dispatchEvent #3 failed"); >+ assertEquals(count, 2, "unexpected number of events handled"); >+ assert(ok, "unexpected events handled"); >+ return 2; >+ }, >+ function () { >+ // test 31: event.stopPropagation() and capture >+ // we're going to use an input element because we can cause events to bubble from it >+ var input = document.createElement('input'); >+ var div = document.createElement('div'); >+ div.appendChild(input); >+ document.body.appendChild(div); >+ // the test will consist of two event handlers: >+ var ok = true; >+ var captureCount = 0; >+ var testCapture = function (event) { >+ ok = ok && >+ (event.type == 'click') && >+ (event.target == input) && >+ (event.currentTarget == div) && >+ (event.eventPhase == 1) && >+ (event.bubbles) && >+ (event.cancelable); >+ captureCount++; >+ event.stopPropagation(); // this shouldn't stop it from firing both times on the div element >+ }; >+ var testBubble = function (event) { >+ ok = false; >+ }; >+ // one of which is added twice: >+ div.addEventListener('click', function (event) { testCapture(event) }, true); >+ div.addEventListener('click', function (event) { testCapture(event) }, true); >+ div.addEventListener('click', testBubble, false); >+ // we cause an event to bubble like this: >+ input.type = 'reset'; >+ input.click(); >+ // cleanup afterwards >+ document.body.removeChild(div); >+ // capture handler should have been called twice >+ assertEquals(captureCount, 2, "capture handler called the wrong number of times"); >+ assert(ok, "capture handler called incorrectly"); >+ return 2; >+ }, >+ function () { >+ // test 32: events bubbling through Document node >+ // event handler: >+ var ok = true; >+ var count = 0; >+ var test = function (event) { >+ count += 1; >+ if (event.eventPhase != 3) >+ ok = false; >+ } >+ // register event handler >+ document.body.addEventListener('click', test, false); >+ // create an element that bubbles an event, and bubble it >+ var input = document.createElement('input'); >+ var div = document.createElement('div'); >+ div.appendChild(input); >+ document.body.appendChild(div); >+ input.type = 'reset'; >+ input.click(); >+ // unregister event handler >+ document.body.removeEventListener('click', test, false); >+ // check that it's removed for good >+ input.click(); >+ // remove the newly added elements >+ document.body.removeChild(div); >+ assertEquals(count, 1, "capture handler called the wrong number of times"); >+ assert(ok, "capture handler called incorrectly"); >+ return 2; >+ }, >+ >+ // bucket 3: DOM2 Views, DOM2 Style, and Selectors >+ function () { >+ // test 33: basic tests for selectors - classes, attributes >+ var p; >+ var builder = function(doc) { >+ p = doc.createElement("p"); >+ doc.body.appendChild(p); >+ }; >+ selectorTest(function (doc, add, expect) { >+ builder(doc); >+ p.className = "selectorPingTest"; >+ var good = add(".selectorPingTest"); >+ add(".SelectorPingTest"); >+ add(".selectorpingtest"); >+ expect(doc.body, 0, "failure 1"); >+ expect(p, good, "failure 2"); >+ }); >+ selectorTest(function (doc, add, expect) { >+ builder(doc); >+ p.className = 'a\u0020b\u0009c\u000Ad\u000De\u000Cf\u2003g\u3000h'; >+ var good = add(".a.b.c.d.e.f\\2003g\\3000h"); >+ expect(p, good, "whitespace error in class processing"); >+ }); >+ selectorTest(function (doc, add, expect) { >+ builder(doc); >+ p.className = "selectorPingTest"; >+ var good = add("[class=selectorPingTest]"); >+ add("[class=SelectorPingTest]"); >+ add("[class=selectorpingtest]"); >+ expect(doc.body, 0, "failure 3"); >+ expect(p, good, "class attribute matching failed"); >+ }); >+ selectorTest(function (doc, add, expect) { >+ builder(doc); >+ p.className = "selectorPingTest"; >+ var good = add("[title=selectorPingTest]"); >+ add("[title=SelectorPingTest]"); >+ add("[title=selectorpingtest]"); >+ expect(doc.body, 0, "failure 4"); >+ expect(p, 0, "failure 5"); >+ p.title = "selectorPingTest"; >+ expect(doc.body, 0, "failure 6"); >+ expect(p, good, "failure 7"); >+ }); >+ selectorTest(function (doc, add, expect) { >+ builder(doc); >+ p.setAttribute('align', 'right and left'); >+ var good = add("[align=\"right and left\"]"); >+ add("[align=left]"); >+ add("[align=right]"); >+ expect(p, good, "align attribute mismatch"); >+ }); >+ return 3; >+ }, >+ function () { >+ // test 34: :lang() and [|=] >+ var div1; >+ var div2; >+ var p; >+ var builder = function(doc) { >+ div1 = doc.createElement('div'); >+ div1.setAttribute("lang", "english"); >+ div1.setAttribute("class", "widget-tree"); >+ doc.body.appendChild(div1); >+ div2 = doc.createElement('div'); >+ div2.setAttribute("lang", "en-GB"); >+ div2.setAttribute("class", "WIDGET"); >+ doc.body.appendChild(div2); >+ p = doc.createElement('p'); >+ div2.appendChild(p); >+ }; >+ selectorTest(function (doc, add, expect) { >+ builder(doc); >+ var lang_en = add(":lang(en)"); >+ expect(div1, 0, "lang=english should not be matched by :lang(en)"); >+ expect(div2, lang_en, "lang=en-GB should be matched by :lang(en)"); >+ expect(p, lang_en, "descendants inheriting lang=en-GB should be matched by :lang(en)"); >+ }); >+ selectorTest(function (doc, add, expect) { >+ builder(doc); >+ var class_widget = add("[class|=widget]"); >+ expect(div1, class_widget, "class attribute should be supported by |= attribute selectors"); >+ expect(div2, 0, "class attribute is case-sensitive"); >+ }); >+ return 3; >+ }, >+ function () { >+ // test 35: :first-child >+ selectorTest(function (doc, add, expect) { >+ var notFirst = 0; >+ var first = add(":first-child"); >+ var p1 = doc.createElement("p"); >+ doc.body.appendChild(doc.createTextNode(" TEST ")); >+ doc.body.appendChild(p1); >+ //expect(doc.documentElement, notFirst, "root element, with no parent node, claims to be a :first-child"); >+ expect(doc.documentElement.firstChild, first, "first child of root node didn't match :first-child"); >+ expect(doc.documentElement.firstChild.firstChild, first, "failure 3"); >+ expect(doc.body, notFirst, "failure 4"); >+ expect(p1, first, "failure 5"); >+ var p2 = doc.createElement("p"); >+ doc.body.appendChild(p2); >+ expect(doc.body, notFirst, "failure 6"); >+ expect(p1, first, "failure 7"); >+ expect(p2, notFirst, "failure 8"); >+ var p0 = doc.createElement("p"); >+ doc.body.insertBefore(p0, p1); >+ expect(doc.body, notFirst, "failure 9"); >+ expect(p0, first, "failure 10"); >+ expect(p1, notFirst, ":first-child still applies to element that was previously a first child"); >+ expect(p2, notFirst, "failure 12"); >+ doc.body.insertBefore(p0, p2); >+ expect(doc.body, notFirst, "failure 13"); >+ expect(p1, first, "failure 14"); >+ expect(p0, notFirst, "failure 15"); >+ expect(p2, notFirst, "failure 16"); >+ }); >+ return 3; >+ }, >+ function () { >+ // test 36: :last-child >+ var p1; >+ var p2; >+ var builder = function(doc) { >+ p1 = doc.createElement('p'); >+ p2 = doc.createElement('p'); >+ doc.body.appendChild(p1); >+ doc.body.appendChild(p2); >+ }; >+ selectorTest(function (doc, add, expect) { >+ builder(doc); >+ var last = add(":last-child"); >+ expect(p1, 0, "control test for :last-child failed"); >+ expect(p2, last, "last child did not match :last-child"); >+ doc.body.appendChild(p1); >+ expect(p2, 0, ":last-child matched element with a following sibling"); >+ expect(p1, last, "failure 4"); >+ p1.appendChild(p2); >+ expect(p2, last, "failure 5"); >+ expect(p1, last, "failure 6"); >+ }); >+ selectorTest(function (doc, add, expect) { >+ builder(doc); >+ var last = add(":last-child"); >+ expect(p1, 0, "failure 7"); >+ expect(p2, last, "failure 8"); >+ doc.body.insertBefore(p2, p1); >+ expect(p2, 0, "failure 9"); >+ expect(p1, last, "failure 10"); >+ }); >+ selectorTest(function (doc, add, expect) { >+ builder(doc); >+ var last = add(":last-child"); >+ expect(p1, 0, "failure 11"); >+ expect(p2, last, "failure 12"); >+ doc.body.removeChild(p2); >+ expect(p1, last, "failure 13"); >+ assertEquals(p1.nextSibling, null, "failure 14"); >+ assertEquals(p2.parentNode, null, "failure 15"); >+ }); >+ return 3; >+ }, >+ function () { >+ // test 37: :only-child >+ var p1; >+ var p2; >+ var builder = function(doc) { >+ p1 = doc.createElement('p'); >+ p2 = doc.createElement('p'); >+ doc.body.appendChild(p1); >+ doc.body.appendChild(p2); >+ }; >+ selectorTest(function (doc, add, expect) { >+ builder(doc); >+ var only = add(":only-child"); >+ expect(p1, 0, "control test for :only-child failed"); >+ expect(p2, 0, "failure 2"); >+ doc.body.removeChild(p2); >+ expect(p1, only, ":only-child did not match only child"); >+ p1.appendChild(p2); >+ expect(p2, only, "failure 4"); >+ expect(p1, only, "failure 5"); >+ }); >+ selectorTest(function (doc, add, expect) { >+ builder(doc); >+ var only = add(":only-child"); >+ expect(p1, 0, "failure 6"); >+ expect(p2, 0, "failure 7"); >+ doc.body.removeChild(p1); >+ expect(p2, only, "failure 8"); >+ p2.appendChild(p1); >+ expect(p2, only, "failure 9"); >+ expect(p1, only, "failure 10"); >+ }); >+ selectorTest(function (doc, add, expect) { >+ builder(doc); >+ var only = add(":only-child"); >+ expect(p1, 0, "failure 11"); >+ expect(p2, 0, "failure 12"); >+ var span1 = doc.createElement('span'); >+ p1.appendChild(span1); >+ expect(p1, 0, "failure 13"); >+ expect(p2, 0, "failure 14"); >+ expect(span1, only, "failure 15"); >+ var span2 = doc.createElement('span'); >+ p1.appendChild(span2); >+ expect(p1, 0, "failure 16"); >+ expect(p2, 0, "failure 17"); >+ expect(span1, 0, "failure 18"); >+ expect(span2, 0, "failure 19"); >+ }); >+ selectorTest(function (doc, add, expect) { >+ builder(doc); >+ var only = add(":only-child"); >+ expect(p1, 0, "failure 20"); >+ expect(p2, 0, "failure 21"); >+ var span1 = doc.createElement('span'); >+ p2.appendChild(span1); >+ expect(p1, 0, "failure 22"); >+ expect(p2, 0, "failure 23"); >+ expect(span1, only, "failure 24"); >+ var span2 = doc.createElement('span'); >+ p2.insertBefore(span2, span1); >+ expect(p1, 0, "failure 25"); >+ expect(p2, 0, "failure 26"); >+ expect(span1, 0, "failure 27"); >+ expect(span2, 0, "failure 28"); >+ }); >+ return 3; >+ }, >+ function () { >+ // test 38: :empty >+ selectorTest(function (doc, add, expect) { >+ var empty = add(":empty"); >+ var p = doc.createElement('p'); >+ doc.body.appendChild(p); >+ expect(p, empty, "empty p element didn't match :empty"); >+ var span = doc.createElement('span'); >+ p.appendChild(span); >+ expect(p, 0, "adding children didn't stop the element matching :empty"); >+ expect(span, empty, "empty span element didn't match :empty"); >+ p.removeChild(span); >+ expect(p, empty, "removing all children didn't make the element match :empty"); >+ p.appendChild(doc.createComment("c")); >+ p.appendChild(doc.createTextNode("")); >+ expect(p, empty, "element with a comment node and an empty text node didn't match :empty"); >+ p.appendChild(doc.createTextNode("")); >+ expect(p, empty, "element with a comment node and two empty text nodes didn't match :empty"); >+ p.lastChild.data = " "; >+ expect(p, 0, "adding text to a text node didn't make the element non-:empty"); >+ assertEquals(p.childNodes.length, 3, "text nodes may have merged"); >+// COMMENTED OUT FOR 2011 UPDATE - replaceWholeText() might go away entirely >+// p.childNodes[1].replaceWholeText(""); >+// assertEquals(p.childNodes.length, 1, "replaceWholeText('') didn't remove text nodes"); >+// REPLACEMENT: >+ assertEquals(p.childNodes[1].nodeType, 3, "missing text node before first removal"); >+ p.removeChild(p.childNodes[1]); >+ assertEquals(p.childNodes[1].nodeType, 3, "missing text node before second removal"); >+ p.removeChild(p.childNodes[1]); >+// END REPLACEMENT TEST >+ expect(p, empty, "element with a comment node only didn't match :empty"); >+ p.appendChild(doc.createElementNS("http://example.com/", "test")); >+ expect(p, 0, "adding an element in a namespace didn't make the element non-:empty"); >+ }); >+ return 3; >+ }, >+ function () { >+ // test 39: :nth-child, :nth-last-child >+ var ps; >+ var builder = function(doc) { >+ ps = [ >+ doc.createElement('p'), >+ doc.createElement('p'), >+ doc.createElement('p'), >+ doc.createElement('p'), >+ doc.createElement('p'), >+ doc.createElement('p'), >+ doc.createElement('p'), >+ doc.createElement('p'), >+ doc.createElement('p'), >+ doc.createElement('p'), >+ doc.createElement('p'), >+ doc.createElement('p'), >+ doc.createElement('p') >+ ]; >+ for (var i = 0; i < ps.length; i += 1) >+ doc.body.appendChild(ps[i]); >+ }; >+ selectorTest(function (doc, add, expect) { >+ builder(doc); >+ var match = add(":nth-child(odd)"); >+ for (var i = 0; i < ps.length; i += 1) >+ expect(ps[i], i % 2 ? 0 : match, ":nth-child(odd) failed with child " + i); >+ }); >+ selectorTest(function (doc, add, expect) { >+ builder(doc); >+ var match = add(":nth-child(even)"); >+ for (var i = 0; i < ps.length; i += 1) >+ expect(ps[i], i % 2 ? match : 0 , ":nth-child(even) failed with child " + i); >+ }); >+ selectorTest(function (doc, add, expect) { >+ builder(doc); >+ var match = add(":nth-child(odd)"); >+ doc.body.removeChild(ps[5]); >+ for (var i = 0; i < 5; i += 1) >+ expect(ps[i], i % 2 ? 0 : match, ":nth-child(odd) failed after removal with child " + i); >+ for (var i = 6; i < ps.length; i += 1) >+ expect(ps[i], i % 2 ? match : 0, ":nth-child(odd) failed after removal with child " + i); >+ }); >+ selectorTest(function (doc, add, expect) { >+ builder(doc); >+ var match = add(":nth-child(even)"); >+ doc.body.removeChild(ps[5]); >+ for (var i = 0; i < 5; i += 1) >+ expect(ps[i], i % 2 ? match : 0, ":nth-child(even) failed after removal with child " + i); >+ for (var i = 6; i < ps.length; i += 1) >+ expect(ps[i], i % 2 ? 0 : match, ":nth-child(even) failed after removal with child " + i); >+ }); >+ selectorTest(function (doc, add, expect) { >+ builder(doc); >+ var match = add(":nth-child(-n+3)"); >+ for (var i = 0; i < 3; i += 1) >+ expect(ps[i], match, ":nth-child(-n+3) failed with child " + i); >+ for (var i = 3; i < ps.length; i += 1) >+ expect(ps[i], 0, ":nth-child(-n+3) failed with child " + i); >+ }); >+ return 3; >+ }, >+ function () { >+ // test 40: :first-of-type, :last-of-type, :only-of-type, :nth-of-type, :nth-last-of-type >+ var elements; >+ var builder = function(doc) { >+ elements = [ >+ doc.createElement('p'), >+ doc.createElement('div'), >+ doc.createElement('div'), >+ doc.createElement('p'), >+ doc.createElement('p'), >+ doc.createElement('p'), >+ doc.createElement('div'), >+ doc.createElement('address'), >+ doc.createElement('div'), >+ doc.createElement('div'), >+ doc.createElement('div'), >+ doc.createElement('p'), >+ doc.createElement('div'), >+ doc.createElement('p') >+ ]; >+ for (var i = 0; i < elements.length; i += 1) >+ doc.body.appendChild(elements[i]); >+ }; >+ selectorTest(function (doc, add, expect) { >+ builder(doc); >+ var match = add(":first-of-type"); >+ var values = [1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0]; >+ for (var i = 0; i < elements.length; i += 1) >+ expect(elements[i], values[i] ? match : 0, "part 1:" + i); >+ }); >+ selectorTest(function (doc, add, expect) { >+ builder(doc); >+ var match = add(":last-of-type"); >+ var values = [0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1]; >+ for (var i = 0; i < elements.length; i += 1) >+ expect(elements[i], values[i] ? match : 0, "part 2:" + i); >+ }); >+ selectorTest(function (doc, add, expect) { >+ builder(doc); >+ var match = add(":only-of-type"); >+ var values = [0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0]; >+ for (var i = 0; i < elements.length; i += 1) >+ expect(elements[i], values[i] ? match : 0, "part 3:" + i); >+ }); >+ selectorTest(function (doc, add, expect) { >+ builder(doc); >+ var match = add(":nth-of-type(3n-1)"); >+ var values = [0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0]; >+ for (var i = 0; i < elements.length; i += 1) >+ expect(elements[i], values[i] ? match : 0, "part 4:" + i); >+ }); >+ selectorTest(function (doc, add, expect) { >+ builder(doc); >+ var match = add(":nth-of-type(3n+1)"); >+ var values = [1, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0]; >+ for (var i = 0; i < elements.length; i += 1) >+ expect(elements[i], values[i] ? match : 0, "part 5:" + i); >+ }); >+ selectorTest(function (doc, add, expect) { >+ builder(doc); >+ var match = add(":nth-last-of-type(2n)"); >+ var values = [1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0]; >+ for (var i = 0; i < elements.length; i += 1) >+ expect(elements[i], values[i] ? match : 0, "part 6:" + i); >+ }); >+ selectorTest(function (doc, add, expect) { >+ builder(doc); >+ var match = add(":nth-last-of-type(-5n+3)"); >+ var values; >+ values = [0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0]; >+ for (var i = 0; i < elements.length; i += 1) >+ expect(elements[i], values[i] ? match : 0, "part 7:" + i); >+ doc.body.appendChild(doc.createElement('blockquote')); >+ values = [0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0]; >+ for (var i = 0; i < elements.length; i += 1) >+ expect(elements[i], values[i] ? match : 0, "part 8:" + i); >+ doc.body.appendChild(doc.createElement('div')); >+ values = [0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0]; >+ for (var i = 0; i < elements.length; i += 1) >+ expect(elements[i], values[i] ? match : 0, "part 9:" + i); >+ }); >+ return 3; >+ }, >+ function () { >+ // test 41: :root, :not() >+ selectorTest(function (doc, add, expect) { >+ var match = add(":not(:root)"); >+ var p = doc.createElement('p'); >+ doc.body.appendChild(p); >+ expect(doc.documentElement, 0, "root was :not(:root)"); >+ expect(doc.documentElement.childNodes[0], match,"head was not :not(:root)"); >+ expect(doc.documentElement.childNodes[1], match,"body was not :not(:root)"); >+ expect(doc.documentElement.childNodes[0].firstChild, match,"title was not :not(:root)"); >+ expect(p, match,"p was not :not(:root)"); >+ }); >+ return 3; >+ }, >+ function () { >+ // test 42: +, ~, >, and ' ' in dynamic situations >+ selectorTest(function (doc, add, expect) { >+ var div1 = doc.createElement('div'); >+ div1.id = "div1"; >+ doc.body.appendChild(div1); >+ var div2 = doc.createElement('div'); >+ doc.body.appendChild(div2); >+ var div3 = doc.createElement('div'); >+ doc.body.appendChild(div3); >+ var div31 = doc.createElement('div'); >+ div3.appendChild(div31); >+ var div311 = doc.createElement('div'); >+ div31.appendChild(div311); >+ var div3111 = doc.createElement('div'); >+ div311.appendChild(div3111); >+ var match = add("#div1 ~ div div + div > div"); >+ expect(div1, 0, "failure 1"); >+ expect(div2, 0, "failure 2"); >+ expect(div3, 0, "failure 3"); >+ expect(div31, 0, "failure 4"); >+ expect(div311, 0, "failure 5"); >+ expect(div3111, 0, "failure 6"); >+ var div310 = doc.createElement('div'); >+ div31.insertBefore(div310, div311); >+ expect(div1, 0, "failure 7"); >+ expect(div2, 0, "failure 8"); >+ expect(div3, 0, "failure 9"); >+ expect(div31, 0, "failure 10"); >+ expect(div310, 0, "failure 11"); >+ expect(div311, 0, "failure 12"); >+ expect(div3111, match, "rule did not start matching after change"); >+ }); >+ selectorTest(function (doc, add, expect) { >+ var div1 = doc.createElement('div'); >+ div1.id = "div1"; >+ doc.body.appendChild(div1); >+ var div2 = doc.createElement('div'); >+ div1.appendChild(div2); >+ var div3 = doc.createElement('div'); >+ div2.appendChild(div3); >+ var div4 = doc.createElement('div'); >+ div3.appendChild(div4); >+ var div5 = doc.createElement('div'); >+ div4.appendChild(div5); >+ var div6 = doc.createElement('div'); >+ div5.appendChild(div6); >+ var match = add("#div1 > div div > div"); >+ expect(div1, 0, "failure 14"); >+ expect(div2, 0, "failure 15"); >+ expect(div3, 0, "failure 16"); >+ expect(div4, match, "failure 17"); >+ expect(div5, match, "failure 18"); >+ expect(div6, match, "failure 19"); >+ var p34 = doc.createElement('p'); >+ div3.insertBefore(p34, div4); >+ p34.insertBefore(div4, null); >+ expect(div1, 0, "failure 20"); >+ expect(div2, 0, "failure 21"); >+ expect(div3, 0, "failure 22"); >+ expect(p34, 0, "failure 23"); >+ expect(div4, 0, "failure 24"); >+ expect(div5, match, "failure 25"); >+ expect(div6, match, "failure 26"); >+ }); >+ selectorTest(function (doc, add, expect) { >+ var div1 = doc.createElement('div'); >+ div1.id = "div1"; >+ doc.body.appendChild(div1); >+ var div2 = doc.createElement('div'); >+ div1.appendChild(div2); >+ var div3 = doc.createElement('div'); >+ div2.appendChild(div3); >+ var div4 = doc.createElement('div'); >+ div3.appendChild(div4); >+ var div5 = doc.createElement('div'); >+ div4.appendChild(div5); >+ var div6 = doc.createElement('div'); >+ div5.appendChild(div6); >+ var match = add("#div1 > div div > div"); >+ expect(div1, 0, "failure 27"); >+ expect(div2, 0, "failure 28"); >+ expect(div3, 0, "failure 29"); >+ expect(div4, match, "failure 30"); >+ expect(div5, match, "failure 31"); >+ expect(div6, match, "failure 32"); >+ var p23 = doc.createElement('p'); >+ div2.insertBefore(p23, div3); >+ p23.insertBefore(div3, null); >+ expect(div1, 0, "failure 33"); >+ expect(div2, 0, "failure 34"); >+ expect(div3, 0, "failure 35"); >+ expect(p23, 0, "failure 36"); >+ expect(div4, match, "failure 37"); >+ expect(div5, match, "failure 38"); >+ expect(div6, match, "failure 39"); >+ }); >+ return 3; >+ }, >+ function () { >+ // test 43: :enabled, :disabled, :checked, etc >+ selectorTest(function (doc, add, expect) { >+ var input = doc.createElement('input'); >+ input.type = 'checkbox'; >+ doc.body.appendChild(input); >+ var neither = 0; >+ var both = add(":checked:enabled"); >+ var checked = add(":checked"); >+ var enabled = add(":enabled"); >+ expect(doc.body, neither, "control failure"); >+ expect(input, enabled, "input element didn't match :enabled"); >+ input.click(); >+ expect(input, both, "input element didn't match :checked"); >+ input.disabled = true; >+ expect(input, checked, "failure 3"); >+ input.checked = false; >+ expect(input, neither, "failure 4"); >+ expect(doc.body, neither, "failure 5"); >+ }); >+ selectorTest(function (doc, add, expect) { >+ var input1 = doc.createElement('input'); >+ input1.type = 'radio'; >+ input1.name = 'radio'; >+ doc.body.appendChild(input1); >+ var input2 = doc.createElement('input'); >+ input2.type = 'radio'; >+ input2.name = 'radio'; >+ doc.body.appendChild(input2); >+ var checked = add(":checked"); >+ expect(input1, 0, "failure 6"); >+ expect(input2, 0, "failure 7"); >+ input2.click(); >+ expect(input1, 0, "failure 6"); >+ expect(input2, checked, "failure 7"); >+ input1.checked = true; >+ expect(input1, checked, "failure 8"); >+ expect(input2, 0, "failure 9"); >+ input2.setAttribute("checked", "checked"); // sets defaultChecked, doesn't change actual state >+ expect(input1, checked, "failure 10"); >+ expect(input2, 0, "failure 11"); >+ input1.type = "text"; >+ expect(input1, 0, "text field matched :checked"); >+ }); >+ selectorTest(function (doc, add, expect) { >+ var input = doc.createElement('input'); >+ input.type = 'button'; >+ doc.body.appendChild(input); >+ var neither = 0; >+ var enabled = add(":enabled"); >+ var disabled = add(":disabled"); >+ add(":enabled:disabled"); >+ expect(input, enabled, "failure 12"); >+ input.disabled = true; >+ expect(input, disabled, "failure 13"); >+ input.removeAttribute("disabled"); >+ expect(input, enabled, "failure 14"); >+ expect(doc.body, neither, "failure 15"); >+ }); >+ return 3; >+ }, >+ function () { >+ // test 44: selectors without spaces before a "*" >+ selectorTest(function (doc, add, expect) { >+ doc.body.className = "test"; >+ var p = doc.createElement('p'); >+ p.className = "test"; >+ doc.body.appendChild(p); >+ add("html*.test"); >+ expect(doc.body, 0, "misparsed selectors"); >+ expect(p, 0, "really misparsed selectors"); >+ }); >+ return 3; >+ }, >+ function () { >+ // test 45: cssFloat and the style attribute >+ assert(!document.body.style.cssFloat, "body has floatation"); >+ document.body.setAttribute("style", "float: right"); >+ assertEquals(document.body.style.cssFloat, "right", "body doesn't have floatation"); >+ document.body.setAttribute("style", "float: none"); >+ assertEquals(document.body.style.cssFloat, "none", "body didn't lose floatation"); >+ return 3; >+ }, >+ function () { >+ // test 46: media queries >+ var doc = getTestDocument(); >+ var style = doc.createElement('style'); >+ style.setAttribute('type', 'text/css'); >+ style.appendChild(doc.createTextNode('@media all and (min-color: 0) { #a { text-transform: uppercase; } }')); // matches >+ style.appendChild(doc.createTextNode('@media not all and (min-color: 0) { #b { text-transform: uppercase; } }')); >+ style.appendChild(doc.createTextNode('@media only all and (min-color: 0) { #c { text-transform: uppercase; } }')); // matches >+ style.appendChild(doc.createTextNode('@media (bogus) { #d { text-transform: uppercase; } }')); >+ style.appendChild(doc.createTextNode('@media all and (bogus) { #e { text-transform: uppercase; } }')); >+ style.appendChild(doc.createTextNode('@media not all and (bogus) { #f { text-transform: uppercase; } }')); // commentd out but should not match >+ style.appendChild(doc.createTextNode('@media only all and (bogus) { #g { text-transform: uppercase; } }')); >+ style.appendChild(doc.createTextNode('@media (bogus), all { #h { text-transform: uppercase; } }')); // matches >+ style.appendChild(doc.createTextNode('@media all and (bogus), all { #i { text-transform: uppercase; } }')); // matches >+ style.appendChild(doc.createTextNode('@media not all and (bogus), all { #j { text-transform: uppercase; } }')); // matches >+ style.appendChild(doc.createTextNode('@media only all and (bogus), all { #k { text-transform: uppercase; } }')); // matches >+ style.appendChild(doc.createTextNode('@media all, (bogus) { #l { text-transform: uppercase; } }')); // matches >+ style.appendChild(doc.createTextNode('@media all, all and (bogus) { #m { text-transform: uppercase; } }')); // matches >+ style.appendChild(doc.createTextNode('@media all, not all and (bogus) { #n { text-transform: uppercase; } }')); // matches >+ style.appendChild(doc.createTextNode('@media all, only all and (bogus) { #o { text-transform: uppercase; } }')); // matches >+ style.appendChild(doc.createTextNode('@media all and color { #p { text-transform: uppercase; } }')); >+ style.appendChild(doc.createTextNode('@media all and min-color: 0 { #q { text-transform: uppercase; } }')); >+ style.appendChild(doc.createTextNode('@media all, all and color { #r { text-transform: uppercase; } }')); // commented out but should match >+ style.appendChild(doc.createTextNode('@media all, all and min-color: 0 { #s { text-transform: uppercase; } }')); // commented out but should match >+ style.appendChild(doc.createTextNode('@media all and min-color: 0, all { #t { text-transform: uppercase; } }')); // commented out but should match >+ style.appendChild(doc.createTextNode('@media (max-color: 0) and (max-monochrome: 0) { #u { text-transform: uppercase; } }')); >+ style.appendChild(doc.createTextNode('@media (min-color: 1), (min-monochrome: 1) { #v { text-transform: uppercase; } }')); // matches >+ style.appendChild(doc.createTextNode('@media all and (min-color: 0) and (min-monochrome: 0) { #w { text-transform: uppercase; } }')); // matches >+ style.appendChild(doc.createTextNode('@media not all and (min-color: 1), not all and (min-monochrome: 1) { #x { text-transform: uppercase; } }')); // matches >+ style.appendChild(doc.createTextNode('@media all and (min-height: 1em) and (min-width: 1em) { #y1 { text-transform: uppercase; } }')); >+ style.appendChild(doc.createTextNode('@media all and (max-height: 1em) and (min-width: 1em) { #y2 { text-transform: uppercase; } }')); >+ style.appendChild(doc.createTextNode('@media all and (min-height: 1em) and (max-width: 1em) { #y3 { text-transform: uppercase; } }')); >+ style.appendChild(doc.createTextNode('@media all and (max-height: 1em) and (max-width: 1em) { #y4 { text-transform: uppercase; } }')); // matches >+ doc.getElementsByTagName('head')[0].appendChild(style); >+ var names = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y1', 'y2', 'y3', 'y4']; >+ for (var i in names) { >+ var p = doc.createElement('p'); >+ p.id = names[i]; >+ doc.body.appendChild(p); >+ } >+ var count = 0; >+ var check = function (c, e) { >+ count += 1; >+ var p = doc.getElementById(c); >+ assertEquals(doc.defaultView.getComputedStyle(p, '').textTransform, e ? 'uppercase' : 'none', "case " + c + " failed (index " + count + ")"); >+ } >+ check('a', true); // 1 >+ check('b', false); >+ check('c', true); >+ check('d', false); >+ check('e', false); >+/* COMMENTED OUT BECAUSE THE CSSWG KEEP CHANGING THE RIGHT ANSWER FOR THIS CASE >+ * check('f', false); >+ */ >+ check('g', false); >+ check('h', true); >+ check('i', true); >+ check('j', true); // 10 >+ check('k', true); >+ check('l', true); >+ check('m', true); >+ check('n', true); >+ check('o', true); >+ check('p', false); >+ check('q', false); >+/* COMMENTED OUT BECAUSE THE CSSWG KEEP CHANGING THE RIGHT ANSWER FOR THESE TOO APPARENTLY >+ * check('r', true); >+ * check('s', true); >+ * check('t', true); // 20 >+ */ >+ check('u', false); >+ check('v', true); >+ check('w', true); >+ check('x', true); >+ // here the viewport is 0x0 >+ check('y1', false); // 25 >+ check('y2', false); >+ check('y3', false); >+ check('y4', true); >+ document.getElementById("selectors").setAttribute("style", "height: 100px; width: 100px"); >+ // now the viewport is more than 1em by 1em >+ check('y1', true); // 29 >+ check('y2', false); >+ check('y3', false); >+ check('y4', false); >+ document.getElementById("selectors").removeAttribute("style"); >+ // here the viewport is 0x0 again >+ check('y1', false); // 33 >+ check('y2', false); >+ check('y3', false); >+ check('y4', true); >+ return 3; >+ }, >+ function () { >+ // test 47: 'cursor' and CSS3 values >+ var doc = getTestDocument(); >+ var style = doc.createElement('style'); >+ style.setAttribute('type', 'text/css'); >+ var cursors = ['auto', 'default', 'none', 'context-menu', 'help', 'pointer', 'progress', 'wait', 'cell', 'crosshair', 'text', 'vertical-text', 'alias', 'copy', 'move', 'no-drop', 'not-allowed', 'e-resize', 'n-resize', 'ne-resize', 'nw-resize', 's-resize', 'se-resize', 'sw-resize', 'w-resize', 'ew-resize', 'ns-resize', 'nesw-resize', 'nwse-resize', 'col-resize', 'row-resize', 'all-scroll']; >+ for (var i in cursors) { >+ var c = cursors[i]; >+ style.appendChild(doc.createTextNode('#' + c + ' { cursor: ' + c + '; }')); >+ } >+ style.appendChild(doc.createTextNode('#bogus { cursor: bogus; }')); >+ doc.body.previousSibling.appendChild(style); >+ doc.body.id = "bogus"; >+ assertEquals(doc.defaultView.getComputedStyle(doc.body, '').cursor, "auto", "control failed"); >+ for (var i in cursors) { >+ var c = cursors[i]; >+ doc.body.id = c; >+ assertEquals(doc.defaultView.getComputedStyle(doc.body, '').cursor, c, "cursor " + c + " not supported"); >+ } >+ return 3; >+ }, >+ function () { >+ // test 48: :link and :visited >+ var iframe = document.getElementById("selectors"); >+ var number = (new Date()).valueOf(); >+ var a = document.createElement('a'); >+ a.appendChild(document.createTextNode('YOU SHOULD NOT SEE THIS AT ALL')); // changed text when fixing http://dbaron.org/mozilla/visited-privacy >+ a.setAttribute('id', 'linktest'); >+ a.setAttribute('class', 'pending'); >+ a.setAttribute('href', iframe.getAttribute('src') + "?" + number); >+ document.getElementsByTagName('map')[0].appendChild(a); >+ iframe.setAttribute("onload", "document.getElementById('linktest').removeAttribute('class')"); >+ iframe.src = a.getAttribute("href"); >+ return 3; >+ }, >+ >+ // bucket 4: HTML and the DOM >+ // Tables >+ function () { >+ // test 49: basic table accessor ping test create*, delete*, and * >+ // where * is caption, tHead, tFoot. >+ var table = document.createElement('table'); >+ assert(!table.caption, "initially: caption"); >+ assert(table.tBodies, "initially: tBodies"); >+ assertEquals(table.tBodies.length, 0, "initially: tBodies.length"); >+ assert(table.rows, "initially: rows"); >+ assertEquals(table.rows.length, 0, "initially: rows.length"); >+ assert(!table.tFoot, "initially: tFoot"); >+ assert(!table.tHead, "initially: tHead"); >+ var caption = table.createCaption(); >+ var thead = table.createTHead(); >+ var tfoot = table.createTFoot(); >+ assertEquals(table.caption, caption, "after creation: caption"); >+ assert(table.tBodies, "after creation: tBodies"); >+ assertEquals(table.tBodies.length, 0, "after creation: tBodies.length"); >+ assert(table.rows, "after creation: rows"); >+ assertEquals(table.rows.length, 0, "after creation: rows.length"); >+ assertEquals(table.tFoot, tfoot, "after creation: tFoot"); >+ assertEquals(table.tHead, thead, "after creation: tHead"); >+ assertEquals(table.childNodes.length, 3, "after creation: childNodes.length"); >+ table.caption = caption; // no-op >+ table.tHead = thead; // no-op >+ table.tFoot = tfoot; // no-op >+ assertEquals(table.caption, caption, "after setting: caption"); >+ assert(table.tBodies, "after setting: tBodies"); >+ assertEquals(table.tBodies.length, 0, "after setting: tBodies.length"); >+ assert(table.rows, "after setting: rows"); >+ assertEquals(table.rows.length, 0, "after setting: rows.length"); >+ assertEquals(table.tFoot, tfoot, "after setting: tFoot"); >+ assertEquals(table.tHead, thead, "after setting: tHead"); >+ assertEquals(table.childNodes.length, 3, "after setting: childNodes.length"); >+ table.deleteCaption(); >+ table.deleteTHead(); >+ table.deleteTFoot(); >+ assert(!table.caption, "after deletion: caption"); >+ assert(table.tBodies, "after deletion: tBodies"); >+ assertEquals(table.tBodies.length, 0, "after deletion: tBodies.length"); >+ assert(table.rows, "after deletion: rows"); >+ assertEquals(table.rows.length, 0, "after deletion: rows.length"); >+ assert(!table.tFoot, "after deletion: tFoot"); >+ assert(!table.tHead, "after deletion: tHead"); >+ assert(!table.hasChildNodes(), "after deletion: hasChildNodes()"); >+ assertEquals(table.childNodes.length, 0, "after deletion: childNodes.length"); >+ return 4; >+ }, >+ function () { >+ // test 50: construct a table, and see if the table is as expected >+ var table = document.createElement('table'); >+ table.appendChild(document.createElement('tbody')); >+ var tr1 = document.createElement('tr'); >+ table.appendChild(tr1); >+ table.appendChild(document.createElement('caption')); >+ table.appendChild(document.createElement('thead')); >+ // <table><tbody/><tr/><caption/><thead/> >+ table.insertBefore(table.firstChild.nextSibling, null); // move the <tr/> to the end >+ // <table><tbody/><caption/><thead/><tr/> >+ table.replaceChild(table.firstChild, table.lastChild); // move the <tbody/> to the end and remove the <tr> >+ // <table><caption/><thead/><tbody/> >+ var tr2 = table.tBodies[0].insertRow(0); >+ // <table><caption/><thead/><tbody><tr/><\tbody> (the '\' is to avoid validation errors) >+ assertEquals(table.tBodies[0].rows[0].rowIndex, 0, "rowIndex broken"); >+ assertEquals(table.tBodies[0].rows[0].sectionRowIndex, 0, "sectionRowIndex broken"); >+ assertEquals(table.childNodes.length, 3, "wrong number of children"); >+ assert(table.caption, "caption broken"); >+ assert(table.tHead, "tHead broken"); >+ assert(!table.tFoot, "tFoot broken"); >+ assertEquals(table.tBodies.length, 1, "wrong number of tBodies"); >+ assertEquals(table.rows.length, 1, "wrong number of rows"); >+ assert(!tr1.parentNode, "orphan row has unexpected parent"); >+ assertEquals(table.caption, table.createCaption(), "caption creation failed"); >+ assertEquals(table.tFoot, null, "table has unexpected footer"); >+ assertEquals(table.tHead, table.createTHead(), "header creation failed"); >+ assertEquals(table.createTFoot(), table.tFoot, "footer creation failed"); >+ // either: <table><caption/><thead/><tbody><tr/><\tbody><tfoot/> >+ // or: <table><caption/><thead/><tfoot/><tbody><tr/><\tbody> >+ table.tHead.appendChild(tr1); >+ // either: <table><caption/><thead><tr/><\thead><tbody><tr/><\tbody><tfoot/> >+ // or: <table><caption/><thead><tr/><\thead><tfoot/><tbody><tr/><\tbody> >+ assertEquals(table.rows[0], table.tHead.firstChild, "top row not in expected position"); >+ assertEquals(table.rows.length, 2, "wrong number of rows after appending one"); >+ assertEquals(table.rows[1], table.tBodies[0].firstChild, "second row not in expected position"); >+ return 4; >+ }, >+ function () { >+ // test 51: test the ordering and creation of rows >+ var table = document.createElement('table'); >+ var rows = [ >+ document.createElement('tr'), // 0: ends up first child of the tfoot >+ document.createElement('tr'), // 1: goes at the end of the table >+ document.createElement('tr'), // 2: becomes second child of thead >+ document.createElement('tr'), // 3: becomes third child of the thead >+ document.createElement('tr'), // 4: not in the table >+ table.insertRow(0), // 5: not in the table >+ table.createTFoot().insertRow(0) // 6: ends up second in the tfoot >+ ]; >+ rows[6].parentNode.appendChild(rows[0]); >+ table.appendChild(rows[1]); >+ table.insertBefore(document.createElement('thead'), table.firstChild); >+ table.firstChild.appendChild(rows[2]); >+ rows[2].parentNode.appendChild(rows[3]); >+ rows[4].appendChild(rows[5].parentNode); >+ table.insertRow(0); >+ table.tFoot.appendChild(rows[6]); >+ assertEquals(table.rows.length, 6, "wrong number of rows"); >+ assertEquals(table.getElementsByTagName('tr').length, 6, "wrong number of tr elements"); >+ assertEquals(table.childNodes.length, 3, "table has wrong number of children"); >+ assertEquals(table.childNodes[0], table.tHead, "tHead isn't first"); >+ assertEquals(table.getElementsByTagName('tr')[0], table.tHead.childNodes[0], "first tr isn't in tHead correctly"); >+ assertEquals(table.getElementsByTagName('tr')[1], table.tHead.childNodes[1], "second tr isn't in tHead correctly"); >+ assertEquals(table.getElementsByTagName('tr')[1], rows[2], "second tr is the wrong row"); >+ assertEquals(table.getElementsByTagName('tr')[2], table.tHead.childNodes[2], "third tr isn't in tHead correctly"); >+ assertEquals(table.getElementsByTagName('tr')[2], rows[3], "third tr is the wrong row"); >+ assertEquals(table.childNodes[1], table.tFoot, "tFoot isn't second"); >+ assertEquals(table.getElementsByTagName('tr')[3], table.tFoot.childNodes[0], "fourth tr isn't in tFoot correctly"); >+ assertEquals(table.getElementsByTagName('tr')[3], rows[0], "fourth tr is the wrong row"); >+ assertEquals(table.getElementsByTagName('tr')[4], table.tFoot.childNodes[1], "fifth tr isn't in tFoot correctly"); >+ assertEquals(table.getElementsByTagName('tr')[4], rows[6], "fifth tr is the wrong row"); >+ assertEquals(table.getElementsByTagName('tr')[5], table.childNodes[2], "sixth tr isn't in tFoot correctly"); >+ assertEquals(table.getElementsByTagName('tr')[5], rows[1], "sixth tr is the wrong row"); >+ assertEquals(table.tBodies.length, 0, "non-zero number of tBodies"); >+ return 4; >+ }, >+ >+ // Forms >+ function () { >+ // test 52: <form> and .elements >+ test = document.getElementsByTagName('form')[0]; >+ assert(test.elements !== test, "form.elements === form"); >+ assert(test.elements !== test.getAttribute('elements'), "form element has an elements content attribute"); >+ assertEquals(test.elements.length, 1, "form element has unexpected number of controls"); >+ assertEquals(test.elements.length, test.length, "form element has inconsistent numbers of controls"); >+ return 4; >+ }, >+ function () { >+ // test 53: changing an <input> dynamically >+ var f = document.createElement('form'); >+ var i = document.createElement('input'); >+ i.name = 'first'; >+ i.type = 'text'; >+ i.value = 'test'; >+ f.appendChild(i); >+ assertEquals(i.getAttribute('name'), 'first', "name attribute wrong"); >+ assertEquals(i.name, 'first', "name property wrong"); >+ assertEquals(i.getAttribute('type'), 'text', "type attribute wrong"); >+ assertEquals(i.type, 'text', "type property wrong"); >+ assert(!i.hasAttribute('value'), "value attribute wrong"); >+ assertEquals(i.value, 'test', "value property wrong"); >+ assertEquals(f.elements.length, 1, "form's elements array has wrong size"); >+ assertEquals(f.elements[0], i, "form's element array doesn't have input control by index"); >+ assertEquals(f.elements.first, i, "form's element array doesn't have input control by name"); >+ assertEquals(f.elements.second, null, "form's element array has unexpected controls by name"); >+ i.name = 'second'; >+ i.type = 'password'; >+ i.value = 'TEST'; >+ assertEquals(i.getAttribute('name'), 'second', "name attribute wrong after change"); >+ assertEquals(i.name, 'second', "name property wrong after change"); >+ assertEquals(i.getAttribute('type'), 'password', "type attribute wrong after change"); >+ assertEquals(i.type, 'password', "type property wrong after change"); >+ assert(!i.hasAttribute('value'), "value attribute wrong after change"); >+ assertEquals(i.value, 'TEST', "value property wrong after change"); >+ assertEquals(f.elements.length, 1, "form's elements array has wrong size after change"); >+ assertEquals(f.elements[0], i, "form's element array doesn't have input control by index after change"); >+ assertEquals(f.elements.second, i, "form's element array doesn't have input control by name after change"); >+ assertEquals(f.elements.first, null, "form's element array has unexpected controls by name after change"); >+ return 4; >+ }, >+ function () { >+ // test 54: changing a parsed <input> >+ var i = document.getElementsByTagName('input')[0]; >+ // initial values >+ assertEquals(i.getAttribute('type'), 'HIDDEN', "input control's type content attribute was wrong"); >+ assertEquals(i.type, 'hidden', "input control's type DOM attribute was wrong"); >+ // change values >+ i.name = 'test'; >+ assertEquals(i.parentNode.elements.test, i, "input control's form didn't update"); >+ // check event handlers >+ i.parentNode.action = 'javascript:'; >+ var called = false; >+ i.parentNode.onsubmit = function (arg) { >+ arg.preventDefault(); >+ called = true; >+ }; >+ i.type = 'submit'; >+ i.click(); // synchronously dispatches a click event to the submit button, which submits the form, which calls onsubmit >+ assert(called, "click handler didn't dispatch properly"); >+ i.type = 'hIdDeN'; >+ // check numeric attributes >+ i.setAttribute('maxLength', '2'); >+ var s = i.getAttribute('maxLength'); >+ assert(s.match, "attribute is not a String"); >+ assert(!s.MIN_VALUE, "attribute is a Number"); >+ return 4; >+ }, >+ function () { >+ // test 55: moved checkboxes should keep their state >+ var container = document.getElementsByTagName("iframe")[0]; >+ var input1 = document.createElement('input'); >+ container.appendChild(input1); >+ input1.type = "checkbox"; >+ input1.checked = true; >+ assert(input1.checked, "checkbox not checked after being checked (inserted first)"); >+ var input2 = document.createElement('input'); >+ input2.type = "checkbox"; >+ container.appendChild(input2); >+ input2.checked = true; >+ assert(input2.checked, "checkbox not checked after being checked (inserted after type set)"); >+ var input3 = document.createElement('input'); >+ input3.type = "checkbox"; >+ input3.checked = true; >+ container.appendChild(input3); >+ assert(input3.checked, "checkbox not checked after being checked (inserted after being checked)"); >+ var target = document.getElementsByTagName("iframe")[1]; >+ target.appendChild(input1); >+ target.appendChild(input2); >+ target.appendChild(input3); >+ assert(input1.checked, "checkbox 1 not checked after being moved"); >+ assert(input2.checked, "checkbox 2 not checked after being moved"); >+ assert(input3.checked, "checkbox 3 not checked after being moved"); >+ return 4; >+ }, >+ function () { >+ // test 56: cloned radio buttons should keep their state >+ var form = document.getElementsByTagName("form")[0]; >+ var input1 = document.createElement('input'); >+ input1.type = "radio"; >+ input1.name = "radioGroup1"; >+ form.appendChild(input1); >+ var input2 = input1.cloneNode(true); >+ input1.parentNode.appendChild(input2); >+ input1.checked = true; >+ assert(form.elements.radioGroup1, "radio group absent"); >+ assert(input1.checked, "first radio button not checked"); >+ assert(!input2.checked, "second radio button checked"); >+ input2.checked = true; >+ assert(!input1.checked, "first radio button checked"); >+ assert(input2.checked, "second radio button not checked"); >+ var input3 = document.createElement('input'); >+ input3.type = "radio"; >+ input3.name = "radioGroup2"; >+ form.appendChild(input3); >+ assert(!input3.checked, "third radio button checked"); >+ input3.checked = true; >+ assert(!input1.checked, "first radio button newly checked"); >+ assert(input2.checked, "second radio button newly not checked"); >+ assert(input3.checked, "third radio button not checked"); >+ input1.checked = true; >+ assert(input1.checked, "first radio button ended up not checked"); >+ assert(!input2.checked, "second radio button ended up checked"); >+ assert(input3.checked, "third radio button ended up not checked"); >+ input1.parentNode.removeChild(input1); >+ input2.parentNode.removeChild(input2); >+ input3.parentNode.removeChild(input3); >+ return 4; >+ }, >+ function () { >+ // test 57: HTMLSelectElement.add() >+ var s = document.createElement('select'); >+ var o = document.createElement('option'); >+ s.add(o, null); >+ assert(s.firstChild === o, "add() didn't add to firstChild"); >+ assertEquals(s.childNodes.length, 1, "add() didn't add to childNodes"); >+ assert(s.childNodes[0] === o, "add() didn't add to childNodes correctly"); >+ assertEquals(s.options.length, 1, "add() didn't add to options"); >+ assert(s.options[0] === o, "add() didn't add to options correctly"); >+ return 4; >+ }, >+ function () { >+ // test 58: HTMLOptionElement.defaultSelected >+ var s = document.createElement('select'); >+ var o1 = document.createElement('option'); >+ var o2 = document.createElement('option'); >+ o2.defaultSelected = true; >+ var o3 = document.createElement('option'); >+ s.appendChild(o1); >+ s.appendChild(o2); >+ s.appendChild(o3); >+ assert(s.options[s.selectedIndex] === o2, "defaultSelected didn't take"); >+ return 4; >+ }, >+ function () { >+ // test 59: attributes of <button> elements >+ var button = document.createElement('button'); >+ assertEquals(button.type, "submit", "<button> doesn't have type=submit"); >+ button.setAttribute("type", "button"); >+ assertEquals(button.type, "button", "<button type=button> doesn't have type=button"); >+ button.removeAttribute("type"); >+ assertEquals(button.type, "submit", "<button> doesn't have type=submit back"); >+ button.setAttribute('value', 'apple'); >+ button.appendChild(document.createTextNode('banana')); >+ assertEquals(button.value, 'apple', "wrong button value"); >+ return 4; >+ }, >+ >+ // Misc DOM2 HTML >+ function () { >+ // test 60: className vs "class" vs attribute nodes >+ var span = document.getElementsByTagName('span')[0]; >+ span.setAttribute('class', 'kittens'); >+// COMMENTED OUT FOR 2011 UPDATE - turns out instead of dropping Attr entirely, as Acid3 originally expected, the API is just being refactored >+// if (!span.getAttributeNode) >+// return 4; // support for attribute nodes is optional in Acid3, because attribute nodes might be removed from DOM Core in the future. >+// var attr = span.getAttributeNode('class'); >+// // however, if they're supported, they'd better work: >+// assert(attr.specified, "attribute not specified"); >+// assertEquals(attr.value, 'kittens', "attribute value wrong"); >+// assertEquals(attr.name, 'class', "attribute name wrong"); >+// attr.value = 'ocelots'; >+// assertEquals(attr.value, 'ocelots', "attribute value wrong"); >+// assertEquals(span.className, 'ocelots', "setting attribute value failed to be reflected in className"); >+ span.className = 'cats'; >+// assertEquals(attr.ownerElement.getAttribute('class'), 'cats', "setting attribute value failed to be reflected in getAttribute()"); >+// span.removeAttributeNode(attr); >+// assert(attr.specified, "attribute not specified after removal"); >+// assert(!attr.ownerElement, "attribute still owned after removal"); >+// assert(!span.className, "element had class after removal"); >+ return 4; >+ }, >+ function () { >+ // test 61: className and the class attribute: space preservation >+ var p = document.createElement('p'); >+ assert(!p.hasAttribute('class'), "element had attribute on creation"); >+ p.setAttribute('class', ' te st '); >+ assert(p.hasAttribute('class'), "element did not have attribute after setting"); >+ assertEquals(p.getAttribute('class'), ' te st ', "class attribute's value was wrong"); >+ assertEquals(p.className, ' te st ', "className was wrong"); >+ p.className = p.className.replace(/ /g, '\n'); >+ assert(p.hasAttribute('class'), "element did not have attribute after replacement"); >+ assertEquals(p.getAttribute('class'), '\nte\n\nst\n', "class attribute's value was wrong after replacement"); >+ assertEquals(p.className, '\nte\n\nst\n', "className was wrong after replacement"); >+ p.className = ''; >+ assert(p.hasAttribute('class'), "element lost attribute after being set to empty string"); >+ assertEquals(p.getAttribute('class'), '', "class attribute's value was wrong after being emptied"); >+ assertEquals(p.className, '', "className was wrong after being emptied"); >+ return 4; >+ }, >+ function () { >+ // test 62: check that DOM attributes and content attributes aren't equivalent >+ var test; >+ // <div class=""> >+ test = document.getElementsByTagName('div')[0]; >+ assertEquals(test.className, 'buckets', "buckets: className wrong"); >+ assertEquals(test.getAttribute('class'), 'buckets', "buckets: class wrong"); >+ assert(!test.hasAttribute('className'), "buckets: element has className attribute"); >+ assert(test.className != test.getAttribute('className'), "buckets: className attribute equals className property"); >+ assert(!('class' in test), "buckets: element has class property") >+ test['class'] = "oil"; >+ assert(test.className != "oil", "buckets: class property affected className"); >+ // <label for=""> >+ test = document.createElement('label'); >+ test.htmlFor = 'jars'; >+ assertEquals(test.htmlFor, 'jars', "jars: htmlFor wrong"); >+ assertEquals(test.getAttribute('for'), 'jars', "jars: for wrong"); >+ assert(!test.hasAttribute('htmlFor'), "jars: element has htmlFor attribute"); >+ assert(test.htmlFor != test.getAttribute('htmlFor'), "jars: htmlFor attribute equals htmlFor property"); >+ test = document.createElement('label'); >+ test.setAttribute('for', 'pots'); >+ assertEquals(test.htmlFor, 'pots', "pots: htmlFor wrong"); >+ assertEquals(test.getAttribute('for'), 'pots', "pots: for wrong"); >+ assert(!test.hasAttribute('htmlFor'), "pots: element has htmlFor attribute"); >+ assert(test.htmlFor != test.getAttribute('htmlFor'), "pots: htmlFor attribute equals htmlFor property"); >+ assert(!('for' in test), "pots: element has for property"); >+ test['for'] = "oil"; >+ assert(test.htmlFor != "oil", "pots: for property affected htmlFor"); >+ // <meta http-equiv=""> >+ test = document.createElement('meta'); >+ test.setAttribute('http-equiv', 'boxes'); >+ assertEquals(test.httpEquiv, 'boxes', "boxes: httpEquiv wrong"); >+ assertEquals(test.getAttribute('http-equiv'), 'boxes', "boxes: http-equiv wrong"); >+ assert(!test.hasAttribute('httpEquiv'), "boxes: element has httpEquiv attribute"); >+ assert(test.httpEquiv != test.getAttribute('httpEquiv'), "boxes: httpEquiv attribute equals httpEquiv property"); >+ test = document.createElement('meta'); >+ test.httpEquiv = 'cans'; >+ assertEquals(test.httpEquiv, 'cans', "cans: httpEquiv wrong"); >+ assertEquals(test.getAttribute('http-equiv'), 'cans', "cans: http-equiv wrong"); >+ assert(!test.hasAttribute('httpEquiv'), "cans: element has httpEquiv attribute"); >+ assert(test.httpEquiv != test.getAttribute('httpEquiv'), "cans: httpEquiv attribute equals httpEquiv property"); >+ assert(!('http-equiv' in test), "cans: element has http-equiv property"); >+ test['http-equiv'] = "oil"; >+ assert(test.httpEquiv != "oil", "cans: http-equiv property affected httpEquiv"); >+ return 4; >+ }, >+ function () { >+ // test 63: attributes of the <area> element >+ var area = document.getElementsByTagName('area')[0]; >+ assertEquals(area.getAttribute('href'), '', "wrong value for href=''"); >+ assertEquals(area.getAttribute('shape'), 'rect', "wrong value for shape=''"); >+ assertEquals(area.getAttribute('coords'), '2,2,4,4', "wrong value for coords=''"); >+ assertEquals(area.getAttribute('alt'), '<\'>', "wrong value for alt=''"); >+ return 4; >+ }, >+ function () { >+ // test 64: more attribute tests >+ // attributes of the <object> element >+ var obj1 = document.createElement('object'); >+ obj1.setAttribute('data', 'test.html'); >+ var obj2 = document.createElement('object'); >+ obj2.setAttribute('data', './test.html'); >+ assertEquals(obj1.data, obj2.data, "object elements didn't resolve URIs correctly"); >+ assert(obj1.data.match(/^http:/), "object.data isn't absolute"); >+ obj1.appendChild(document.createElement('param')); >+ assertEquals(obj1.getElementsByTagName('param').length, 1, "object is missing its only child"); >+ // non-existent attributes >+ var test = document.createElement('p'); >+ assert(!('TWVvdywgbWV3Li4u' in test), "TWVvdywgbWV3Li4u unexpectedly found"); >+ assertEquals(test.TWVvdywgbWV3Li4u, undefined, ".TWVvdywgbWV3Li4u wasn't undefined"); >+ assertEquals(test['TWVvdywgbWV3Li4u'], undefined, "['TWVvdywgbWV3Li4u'] wasn't undefined"); >+ test.setAttribute('TWVvdywgbWV3Li4u', 'woof'); >+ assert(!('TWVvdywgbWV3Li4u' in test), "TWVvdywgbWV3Li4u unexpectedly found after setting"); >+ assertEquals(test.TWVvdywgbWV3Li4u, undefined, ".TWVvdywgbWV3Li4u wasn't undefined after setting"); >+ assertEquals(test['TWVvdywgbWV3Li4u'], undefined, "['TWVvdywgbWV3Li4u'] wasn't undefined after setting"); >+ assertEquals(test.getAttribute('TWVvdywgbWV3Li4u'), 'woof', "TWVvdywgbWV3Li4u has wrong value after setting"); >+ return 4; >+ }, >+ >+ // bucket 5: Tests from the Acid3 Competition >+ function () { >+ // test 65: bring in a couple of SVG files and some HTML files dynamically - preparation for later tests in this bucket >+ // NOTE FROM 2011 UPDATE: The svg.xml file still contains the SVG font, but it is no longer used >+ kungFuDeathGrip = document.createElement('p'); >+ kungFuDeathGrip.className = 'removed'; >+ var iframe, object; >+ // svg iframe >+ iframe = document.createElement('iframe'); >+ iframe.onload = function () { kungFuDeathGrip.title += '1' }; >+ iframe.src = "svg.xml"; >+ kungFuDeathGrip.appendChild(iframe); >+ // object iframe >+ object = document.createElement('object'); >+ object.onload = function () { kungFuDeathGrip.title += '2' }; >+ object.data = "svg.xml"; >+ kungFuDeathGrip.appendChild(object); >+ // xml iframe >+ iframe = document.createElement('iframe'); >+ iframe.onload = function () { kungFuDeathGrip.title += '3' }; >+ iframe.src = "empty.xml"; >+ kungFuDeathGrip.appendChild(iframe); >+ // html iframe >+ iframe = document.createElement('iframe'); >+ iframe.onload = function () { kungFuDeathGrip.title += '4' }; >+ iframe.src = "empty.html"; >+ kungFuDeathGrip.appendChild(iframe); >+ // html iframe >+ iframe = document.createElement('iframe'); >+ iframe.onload = function () { kungFuDeathGrip.title += '5' }; >+ iframe.src = "xhtml.1"; >+ kungFuDeathGrip.appendChild(iframe); >+ // html iframe >+ iframe = document.createElement('iframe'); >+ iframe.onload = function () { kungFuDeathGrip.title += '6' }; >+ iframe.src = "xhtml.2"; >+ kungFuDeathGrip.appendChild(iframe); >+ // html iframe >+ iframe = document.createElement('iframe'); >+ iframe.onload = function () { kungFuDeathGrip.title += '7' }; >+ iframe.src = "xhtml.3"; >+ kungFuDeathGrip.appendChild(iframe); >+ // add the lot to the document >+ document.getElementsByTagName('map')[0].appendChild(kungFuDeathGrip); >+ return 5; >+ }, >+ function () { >+ // test 66: localName on text nodes (and now other things), from Sylvain Pasche >+ assertEquals(document.createTextNode("test").localName, null, 'wrong localName for text node'); >+ assertEquals(document.createComment("test").localName, null, 'wrong localName for comment node'); >+ assertEquals(document.localName, null, 'wrong localName for document node'); >+ return 5; >+ }, >+ function () { >+// COMMENTED OUT IN NOV 2013 BECAUSE DOM SPEC REMOVED THIS FEATURE >+// // test 67: removedNamedItemNS on missing attributes, from Sylvain Pasche >+// var p = document.createElement("p"); >+// var msg = 'wrong exception raised'; >+// try { >+// p.attributes.removeNamedItemNS("http://www.example.com/", "absent"); >+// msg = 'no exception raised'; >+// } catch (e) { >+// if ('code' in e) { >+// if (e.code == 8) >+// msg = ''; >+// else >+// msg += '; code = ' + e.code; >+// } >+// } >+// assert(msg == '', "when calling removeNamedItemNS in a non existent attribute: " + msg); >+ return 5; >+ }, >+ function () { >+ // test 68: UTF-16 surrogate pairs, from David Chan >+ // >+ // In The Unicode Standard 5.0, it is explicitly permitted to >+ // allow malformed UTF-16, that is, to leave the string alone. >+ // (http://www.unicode.org/versions/Unicode5.0.0): >+ // >+ // section 2.7: "...strings in ... ECMAScript are Unicode 16-bit >+ // strings, but are not necessarily well-formed UTF-16 >+ // sequences. In normal processing, it can be far more >+ // efficient to allow such strings to contain code unit >+ // sequences that are not well-formed UTF-16 -- that is, >+ // isolated surrogates" >+ // >+ // On the other hand, if the application wishes to ensure >+ // well-formed character sequences, it may not permit the >+ // malformed sequence and it must regard the first codepoint as >+ // an error: >+ // >+ // Section 3.2: "C10. When a process interprets a code sequence >+ // which purports to be in a Unicode character encoding form, it >+ // shall treat ill-formed code unit sequences as an error >+ // condition and shall not interpret such sequences as >+ // characters. >+ // [...] >+ // For example, in UTF-8 every code unit of the form 110....2 >+ // must be followed by a code unit of the form 10......2. A >+ // sequence such as 110.....2 0.......2 is ill-formed and must >+ // never be generated. When faced with this ill-formed code unit >+ // sequence while transforming or interpreting text, a >+ // conformant process must treat the first code unit 110.....2 >+ // as an illegally terminated code unit sequence~Wfor example, >+ // by signaling an error, filtering the code unit out, or >+ // representing the code unit with a marker such as U+FFFD >+ // replacement character." >+ // >+ // So it would be permitted to do any of the following: >+ // 1) Leave the string alone >+ // 2) Remove the unpaired surrogate >+ // 3) Replace the unpaired surrogate with U+FFFD >+ // 4) Throw an exception >+ >+ try { >+ var unpaired = String.fromCharCode(0xd863); // half a surrogate pair >+ var before = unpaired + "text"; >+ var elt = document.createElement("input"); >+ elt.value = before; >+ var after = elt.value; >+ } >+ catch(ex) { >+ return 5; // Unpaired surrogate caused an exception - ok >+ } >+ if (after == before && before.length == 5) >+ return 5; // Unpaired surrogate kept - ok >+ if (after == "text") >+ return 5; // Unpaired surrogate removed - ok >+ var replacement = String.fromCharCode(0xfffd); >+ if (after == replacement + "text") >+ return 5; // Unpaired surrogate replaced - ok >+ fail("Unpaired surrogate handled wrongly (input was '" + before + "', output was '" + after + "')"); >+ }, >+ function () { >+ // test 69: check that the support files loaded -- preparation for the rest of the tests in this bucket >+ assert(!(kungFuDeathGrip == null), "kungFuDeathGrip was null"); >+ assert(!(kungFuDeathGrip.title == null), "kungFuDeathGrip.title was null"); >+ if (kungFuDeathGrip.title.length < 7) >+ return "retry"; >+ assert(!(kungFuDeathGrip.firstChild == null), "kungFuDeathGrip.firstChild was null"); >+ assert(!(kungFuDeathGrip.firstChild.contentDocument == null), "kungFuDeathGrip.firstChild.contentDocument was null"); >+ assert(!(kungFuDeathGrip.firstChild.contentDocument.getElementsByTagName == null), "kungFuDeathGrip.firstChild.contentDocument.getElementsByTagName was null"); >+ var t = kungFuDeathGrip.firstChild.contentDocument.getElementsByTagName('text')[0]; >+ assert(!(t == null), "t was null"); >+ assert(!(t.parentNode == null), "t.parentNode was null"); >+ assert(!(t.parentNode.removeChild == null), "t.parentNode.removeChild was null"); >+ t.parentNode.removeChild(t); >+ return 5; >+ }, >+ function () { >+ // test 70: XML encoding test >+ // the third child in kungFuDeathGrip is an ISO-8859-1 document sent as UTF-8. >+ // q.v. XML 1.0, section 4.3.3 Character Encoding in Entities >+ // this only tests one of a large number of conditions that should cause fatal errors >+ var doc = kungFuDeathGrip.childNodes[2].contentDocument; >+ if (!doc) >+ return 5; >+ if (doc.documentElement.tagName != "root") >+ return 5; >+ if (doc.documentElement.getElementsByTagName('test').length < 1) >+ return 5; >+ fail("UTF-8 encoded XML document with invalid character did not have a well-formedness error"); >+ }, >+ function () { >+ // test 71: HTML parsing, from Simon Pieters and Anne van Kesteren >+ var doc = kungFuDeathGrip.childNodes[3].contentDocument; >+ assert(doc, "missing document for test"); >+ try { >+ // siblings >+ doc.open(); >+ doc.write("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\"><title><\/title><span><\/span><script type=\"text/javascript\"><\/script>"); >+ doc.close(); >+ assertEquals(doc.childNodes.length, 2, "wrong number of children in #document (first test)"); >+ assertEquals(doc.firstChild.name.toUpperCase(), "HTML", "name wrong (first test)"); // changed 2009-08-13 to add .toUpperCase() for HTML5 compat >+ assertEquals(doc.firstChild.publicId, "-//W3C//DTD HTML 4.0 Transitional//EN", "publicId wrong (first test)"); >+ if ((doc.firstChild.systemId != null) && (doc.firstChild.systemId != "")) >+ fail("systemId wrong (first test)"); >+ if (('internalSubset' in doc.firstChild) || doc.firstChild.internalSubset) >+ assertEquals(doc.firstChild.internalSubset, null, "internalSubset wrong (first test)"); >+ assertEquals(doc.documentElement.childNodes.length, 2, "wrong number of children in HTML (first test)"); >+ assertEquals(doc.documentElement.firstChild.nodeName, "HEAD", "misplaced HEAD element (first test)"); >+ assertEquals(doc.documentElement.firstChild.childNodes.length, 1, "wrong number of children in HEAD (first test)"); >+ assertEquals(doc.documentElement.firstChild.firstChild.tagName, "TITLE", "misplaced TITLE element (first test)"); >+ assertEquals(doc.documentElement.lastChild.nodeName, "BODY", "misplaced BODY element (first test)"); >+ assertEquals(doc.documentElement.lastChild.childNodes.length, 2, "wrong number of children in BODY (first test)"); >+ assertEquals(doc.documentElement.lastChild.firstChild.tagName, "SPAN", "misplaced SPAN element (first test)"); >+ assertEquals(doc.documentElement.lastChild.lastChild.tagName, "SCRIPT", "misplaced SCRIPT element (first test)"); >+ // parent/child >+ doc.open(); >+ doc.write("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\"><title><\/title><span><script type=\"text/javascript\"><\/script><\/span>"); >+ doc.close(); >+ assertEquals(doc.childNodes.length, 2, "wrong number of children in #document (second test)"); >+ assertEquals(doc.firstChild.name.toUpperCase(), "HTML", "name wrong (second test)"); // changed 2009-08-13 to add .toUpperCase() for HTML5 compat >+ assertEquals(doc.firstChild.publicId, "-//W3C//DTD HTML 4.01 Transitional//EN", "publicId wrong (second test)"); >+ assertEquals(doc.firstChild.systemId, "http://www.w3.org/TR/html4/loose.dtd", "systemId wrong (second test)"); >+ if (('internalSubset' in doc.firstChild) || doc.firstChild.internalSubset) >+ assertEquals(doc.firstChild.internalSubset, null, "internalSubset wrong (second test)"); >+ assertEquals(doc.documentElement.childNodes.length, 2, "wrong number of children in HTML (second test)"); >+ assertEquals(doc.documentElement.firstChild.nodeName, "HEAD", "misplaced HEAD element (second test)"); >+ assertEquals(doc.documentElement.firstChild.childNodes.length, 1, "wrong number of children in HEAD (second test)"); >+ assertEquals(doc.documentElement.firstChild.firstChild.tagName, "TITLE", "misplaced TITLE element (second test)"); >+ assertEquals(doc.documentElement.lastChild.nodeName, "BODY", "misplaced BODY element (second test)"); >+ assertEquals(doc.documentElement.lastChild.childNodes.length, 1, "wrong number of children in BODY (second test)"); >+ assertEquals(doc.documentElement.lastChild.firstChild.tagName, "SPAN", "misplaced SPAN element (second test)"); >+ assertEquals(doc.documentElement.lastChild.firstChild.firstChild.tagName, "SCRIPT", "misplaced SCRIPT element (second test)"); >+ } finally { >+ // prepare the file for the next test >+ doc.open(); >+ doc.write("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\"><head><title><\/title><style type=\"text/css\">img { height: 10px; }<\/style><body><p><img src=\"data:image/gif;base64,R0lGODlhAQABAID%2FAMDAwAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw%3D%3D\" alt=\"\">"); >+ doc.close(); >+ } >+ return 5; >+ }, >+ function () { >+ // test 72: dynamic modification of <style> blocks' text nodes, from Jonas Sicking and Garret Smith >+ var doc = kungFuDeathGrip.childNodes[3].contentDocument; >+ assert(doc, "missing document for test"); >+ assert(doc.images[0], "prerequisite failed: no image"); >+ assertEquals(doc.images[0].height, 10, "prerequisite failed: style didn't affect image"); >+ doc.styleSheets[0].ownerNode.firstChild.data = "img { height: 20px; }"; >+ assertEquals(doc.images[0].height, 20, "change failed to take effect"); >+ doc.styleSheets[0].ownerNode.appendChild(doc.createTextNode("img { height: 30px; }")); >+ assertEquals(doc.images[0].height, 30, "append failed to take effect"); >+ var rules = doc.styleSheets[0].cssRules; // "All CSS objects in the DOM are "live"" says section 2.1, Overview of the DOM Level 2 CSS Interfaces >+ doc.styleSheets[0].insertRule("img { height: 40px; }", 2); >+ assertEquals(doc.images[0].height, 40, "insertRule failed to take effect"); >+ assertEquals(doc.styleSheets[0].cssRules.length, 3, "count of rules is wrong"); >+ assertEquals(rules.length, 3, "cssRules isn't live"); >+ // while we're at it, check some other things on doc.styleSheets: >+ assert(doc.styleSheets[0].href === null, "internal stylesheet had a URI: " + doc.styleSheets[0].href); >+ assert(document.styleSheets[0].href === null, "internal acid3 stylesheet had a URI: " + document.styleSheets[0].href); >+ return 5; >+ }, >+ function () { >+ // test 73: nested events, from Jonas Sicking >+ var doc = kungFuDeathGrip.childNodes[3].contentDocument; >+ // implied events >+ var up = 0; >+ var down = 0; >+ var button = doc.createElement("button"); >+ button.type = "button"; >+ button.onclick = function () { up += 1; if (up < 10) button.click(); down += up; }; // not called >+ button.addEventListener('test', function () { up += 1; var e = doc.createEvent("HTMLEvents"); e.initEvent('test', false, false); if (up < 20) button.dispatchEvent(e); down += up; }, false); >+ var evt = doc.createEvent("HTMLEvents"); >+ evt.initEvent('test', false, false); >+ button.dispatchEvent(evt); >+ assertEquals(up, 20, "test event handler called the wrong number of times"); >+ assertEquals(down, 400, "test event handler called in the wrong order"); >+ return 5; >+ }, >+ function () { >+ // test 74: check getSVGDocument(), from Erik Dahlstrom >+ // GetSVGDocument[6]: "In the case where an SVG document is >+ // embedded by reference, such as when an XHTML document has an >+ // 'object' element whose href (or equivalent) attribute >+ // references an SVG document (i.e., a document whose MIME type >+ // is "image/svg+xml" and whose root element is thus an 'svg' >+ // element), the SVG user agent is required to implement the >+ // GetSVGDocument interface for the element which references the >+ // SVG document (e.g., the HTML 'object' or comparable >+ // referencing elements)." >+ // >+ // [6] http://www.w3.org/TR/SVG11/struct.html#InterfaceGetSVGDocument >+ // >+ // iframe >+ var iframe = kungFuDeathGrip.childNodes[0]; >+ assert(iframe, "Failed finding svg iframe."); >+ assert(iframe.contentDocument, "contentDocument failed for <iframe> referencing an svg document."); >+ if (!iframe.getSVGDocument) >+ fail("getSVGDocument missing on <iframe> element."); >+ assert(iframe.getSVGDocument(), "getSVGDocument failed for <iframe> referencing an svg document."); >+ assert(iframe.getSVGDocument() == iframe.contentDocument, "Mismatch between getSVGDocument and contentDocument #1."); >+ // object >+ var object = kungFuDeathGrip.childNodes[1]; >+ assert(object, "Failed finding svg object."); >+ assert(object.contentDocument, "contentDocument failed for <object> referencing an svg document."); >+ if (!object.getSVGDocument) >+ fail("getSVGDocument missing on <object> element."); >+ assert(object.getSVGDocument(), "getSVGDocument failed for <object> referencing an svg document."); >+ assert(object.getSVGDocument() == object.contentDocument, "Mismatch between getSVGDocument and contentDocument #2."); >+ return 5; >+ }, >+ function () { >+// PARTS COMMENTED OUT FOR 2011 UPDATE - SVG Fonts, SVG SMIL animation, and XLink have met with some implementor malaise even amongst those that shipped them >+// This affects tests 75 to 79 >+// // test 75: SMIL in SVG, from Erik Dahlstrom >+// // >+// // The test begins by creating a few elements, among those is a >+// // <set> element. This element is prevented from running by >+// // setting begin="indefinite", which means that the animation >+// // doesn't start until the 'beginElement' DOM method is called >+// // on the <set> element. The animation is a simple animation >+// // that sets the value of the width attribute to 0. The duration >+// // of the animation is 'indefinite' which means that the value >+// // will stay 0 indefinitely. The target of the animation is the >+// // 'width' attribute of the <rect> element that is the parent of >+// // the <set> element. When 'width' is 0 the rect is not rendered >+// // according to the spec[7]. >+// // >+// // Some properties of the SVGAnimatedLength[2] and SVGLength[8] >+// // are also inspected. Before the animation starts both baseVal >+// // and animVal contain the same values[2]. Then the animation is >+// // started by calling the beginElement method[9]. To make sure >+// // that time passes between the triggering of the animation and >+// // the time that the values are read out (in test #66), the >+// // current time is set to 1000 seconds using the setCurrentTime >+// // method[10]. >+// // >+// // [2] http://www.w3.org/TR/SVG11/types.html#InterfaceSVGAnimatedLength >+// // [7] http://www.w3.org/TR/SVG11/shapes.html#RectElement >+// // [8] http://www.w3.org/TR/SVG11/types.html#InterfaceSVGLength >+// // [9] http://www.w3.org/TR/SVG11/animate.html#DOMInterfaces >+// // [10] http://www.w3.org/TR/SVG11/struct.html#InterfaceSVGSVGElement >+// >+ var svgns = "http://www.w3.org/2000/svg"; >+ var svgdoc = kungFuDeathGrip.firstChild.contentDocument; >+ assert(svgdoc, "contentDocument failed on <iframe> for svg document."); >+ var svg = svgdoc.documentElement; >+ var rect = svgdoc.createElementNS(svgns, "rect"); >+ rect.setAttribute("fill", "red"); >+ rect.setAttribute("width", "100"); >+ rect.setAttribute("height", "100"); >+ rect.setAttribute("id", "rect"); >+// var anim = svgdoc.createElementNS(svgns, "set"); >+// anim.setAttribute("begin", "indefinite"); >+// anim.setAttribute("to", "0"); >+// anim.setAttribute("attributeName", "width"); >+// anim.setAttribute("dur", "indefinite"); >+// anim.setAttribute("fill", "freeze"); >+// rect.appendChild(anim); >+ svg.appendChild(rect); >+ assert(rect.width, "SVG DOM interface SVGRectElement not supported."); >+// assert(rect.width.baseVal, "SVG DOM base type SVGAnimatedLength not supported."); >+// assert(rect.width.animVal, "SVG DOM base type SVGAnimatedLength not supported."); >+// assertEquals(SVGLength.SVG_LENGTHTYPE_NUMBER, 1, "Incorrect SVGLength.SVG_LENGTHTYPE_NUMBER constant value."); >+// assertEquals(rect.width.baseVal.unitType, SVGLength.SVG_LENGTHTYPE_NUMBER, "Incorrect unitType on width attribute."); >+ assertEquals(rect.getAttribute("width"), "100", "Incorrect value from getAttribute."); >+// assertEquals(rect.width.baseVal.valueInSpecifiedUnits, 100, "Incorrect valueInSpecifiedUnits value."); >+// assertEquals(rect.width.baseVal.value, 100, "Incorrect baseVal value before animation."); >+// assertEquals(rect.width.animVal.value, 100, "Incorrect animVal value before animation."); >+// anim.beginElement(); >+// assertEquals(rect.width.baseVal.value, 100, "Incorrect baseVal value after starting animation."); >+// svg.setCurrentTime(1000); // setting 1 second to make sure that time != 0s when we check the animVal value >+// // the animation is then tested in the next test >+ return 5; >+ }, >+ function () { >+// // test 76: SMIL in SVG, part 2, from Erik Dahlstrom >+// // >+// // About animVal[2]: "If the given attribute or property is >+// // being animated, contains the current animated value of the >+// // attribute or property, and both the object itself and its >+// // contents are readonly. If the given attribute or property is >+// // not currently being animated, contains the same value as >+// // 'baseVal'." >+// // >+// // Since the duration of the animation is indefinite the value >+// // is still being animated at the time it's queried. Now since >+// // the 'width' attribute was animated from its original value of >+// // "100" to the new value of "0" the animVal property must >+// // contain the value 0. >+// // >+// // [2] http://www.w3.org/TR/SVG11/types.html#InterfaceSVGAnimatedLength >+// >+ var svgdoc = kungFuDeathGrip.firstChild.contentDocument; >+ assert(svgdoc, "contentDocument failed on <object> for svg document."); >+ var rect = svgdoc.getElementById("rect"); >+ assert(rect, "Failed to find <rect> element in svg document."); >+// assertEquals(rect.width.animVal.value, 0, "Incorrect animVal value after svg animation."); >+ return 5; >+ }, >+ function () { >+// // test 77: external SVG fonts, from Erik Dahlstrom >+// // >+// // SVGFonts are described here[3], and the relevant DOM methods >+// // used in the test are defined here[4]. >+// // >+// // Note that in order to be more predictable the svg should be >+// // visible, so that clause "For non-rendering environments, the >+// // user agent shall make reasonable assumptions about glyph >+// // metrics." doesn't influence the results. We use 'opacity:0' >+// // to hide the SVG, but arguably it's still a "rendering >+// // environment". >+// // >+// // The font-size 4000 was chosen because that matches the >+// // unitsPerEm value in the svgfont, which makes it easy to check >+// // the glyph advances since they will then be exactly what was >+// // specified in the svgfont. >+// // >+// // [3] http://www.w3.org/TR/SVG11/fonts.html >+// // [4] http://www.w3.org/TR/SVG11/text.html#InterfaceSVGTextContentElement >+// >+ var svgns = "http://www.w3.org/2000/svg"; >+// var xlinkns = "http://www.w3.org/1999/xlink"; >+ var svgdoc = kungFuDeathGrip.firstChild.contentDocument; >+ assert(svgdoc, "contentDocument failed on <object> for svg document."); >+ var svg = svgdoc.documentElement; >+ var text = svgdoc.createElementNS(svgns, "text"); >+ text.setAttribute("y", "1em"); >+ text.setAttribute("font-size", "4000"); >+ text.setAttribute("font-family", "ACID3svgfont"); >+ var textContent = svgdoc.createTextNode("abc"); >+ text.appendChild(textContent); >+ svg.appendChild(text); >+ // The font-size 4000 was chosen because that matches the unitsPerEm value in the svgfont, >+ // which makes it easy to check the glyph advances since they will then be exactly what was specified in the svgfont. >+ assert(text.getNumberOfChars, "SVGTextContentElement.getNumberOfChars() not supported."); >+ assertEquals(text.getNumberOfChars(), 3, "getNumberOfChars returned incorrect string length."); >+// assertEquals(text.getComputedTextLength(), 4711+42+23, "getComputedTextLength failed."); >+// assertEquals(text.getSubStringLength(0,1), 42, "getSubStringLength #1 failed."); >+// assertEquals(text.getSubStringLength(0,2), 42+23, "getSubStringLength #2 failed."); >+// assertEquals(text.getSubStringLength(1,1), 23, "getSubStringLength #3 failed."); >+// assertEquals(text.getSubStringLength(1,0), 0, "getSubStringLength #4 failed."); >+///* COMMENTED OUT BECAUSE SVGWG KEEPS CHANGING THIS >+// * var code = -1000; >+// * try { >+// * var sl = text.getSubStringLength(1,3); >+// * } catch(e) { >+// * code = e.code; >+// * } >+// * assertEquals(code, DOMException.INDEX_SIZE_ERR, "getSubStringLength #1 didn't throw exception."); >+// * code = -1000; >+// * try { >+// * var sl = text.getSubStringLength(0,4); >+// * } catch(e) { >+// * code = e.code; >+// * } >+// * assertEquals(code, DOMException.INDEX_SIZE_ERR, "getSubStringLength #2 didn't throw exception."); >+// * code = -1000; >+// * try { >+// * var sl = text.getSubStringLength(3,0); >+// * } catch(e) { >+// * code = e.code; >+// * } >+// * assertEquals(code, DOMException.INDEX_SIZE_ERR, "getSubStringLength #3 didn't throw exception."); >+// */ >+// code = -1000; >+// try { >+// var sl = text.getSubStringLength(-17,20); >+// } catch(e) { >+// code = 0; // negative values might throw native exception since the api accepts only unsigned values >+// } >+// assert(code == 0, "getSubStringLength #4 didn't throw exception."); >+// assertEquals(text.getStartPositionOfChar(0).x, 0, "getStartPositionOfChar(0).x returned invalid value."); >+// assertEquals(text.getStartPositionOfChar(1).x, 42, "getStartPositionOfChar(1).x returned invalid value."); >+// assertEquals(text.getStartPositionOfChar(2).x, 42+23, "getStartPositionOfChar(2).x returned invalid value."); >+// assertEquals(text.getStartPositionOfChar(0).y, 4000, "getStartPositionOfChar(0).y returned invalid value."); >+// code = -1000; >+// try { >+// var val = text.getStartPositionOfChar(-1); >+// } catch(e) { >+// code = 0; // negative values might throw native exception since the api accepts only unsigned values >+// } >+// assert(code == 0, "getStartPositionOfChar #1 exception failed."); >+// code = -1000; >+// try { >+// var val = text.getStartPositionOfChar(4); >+// } catch(e) { >+// code = e.code; >+// } >+// assertEquals(code, DOMException.INDEX_SIZE_ERR, "getStartPositionOfChar #2 exception failed."); >+// assertEquals(text.getEndPositionOfChar(0).x, 42, "getEndPositionOfChar(0).x returned invalid value."); >+// assertEquals(text.getEndPositionOfChar(1).x, 42+23, "getEndPositionOfChar(1).x returned invalid value."); >+// assertEquals(text.getEndPositionOfChar(2).x, 42+23+4711, "getEndPositionOfChar(2).x returned invalid value."); >+// code = -1000; >+// try { >+// var val = text.getEndPositionOfChar(-17); >+// } catch(e) { >+// code = 0; // negative values might throw native exception since the api accepts only unsigned values >+// } >+// assert(code == 0, "getEndPositionOfChar #1 exception failed."); >+// code = -1000; >+// try { >+// var val = text.getEndPositionOfChar(4); >+// } catch(e) { >+// code = e.code; >+// } >+// assertEquals(code, DOMException.INDEX_SIZE_ERR, "getEndPositionOfChar #2 exception failed."); >+ return 5; >+ }, >+ function () { >+// // test 78: SVG textPath and getRotationOfChar(), from Erik Dahlstrom >+// // >+// // The getRotationOfChar[4] method fetches the midpoint rotation >+// // of a glyph defined by a character (in this testcase there is >+// // a simple 1:1 correspondence between the two). The path is >+// // defined in the svg.xml file, and consists of first a line >+// // going down, then followed by a line that has a 45 degree >+// // slope and then followed by a horizontal line. The length of >+// // each path segment have been paired with the advance of each >+// // glyph, so that each glyph will be on each of the three >+// // different path segments (see text on a path layout rules[5]). >+// // Thus the rotation of the first glyph is 90 degrees, the >+// // second 45 degrees and the third 0 degrees. >+// // >+// // [4] http://www.w3.org/TR/SVG11/text.html#InterfaceSVGTextContentElement >+// // [5] http://www.w3.org/TR/SVG11/text.html#TextpathLayoutRules >+// >+ var svgns = "http://www.w3.org/2000/svg"; >+// var xlinkns = "http://www.w3.org/1999/xlink"; >+ var svgdoc = kungFuDeathGrip.firstChild.contentDocument; >+ assert(svgdoc, "contentDocument failed on <object> for svg document."); >+ var svg = svgdoc.documentElement; >+// var text = svgdoc.createElementNS(svgns, "text"); >+// text.setAttribute("font-size", "4000"); >+// text.setAttribute("font-family", "ACID3svgfont"); >+// var textpath = svgdoc.createElementNS(svgns, "textPath"); >+// textpath.setAttributeNS(xlinkns, "xlink:href", "#path"); >+// var textContent = svgdoc.createTextNode("abc"); >+// textpath.appendChild(textContent); >+// text.appendChild(textpath); >+// svg.appendChild(text); >+// assertEquals(text.getRotationOfChar(0), 90, "getRotationOfChar(0) failed."); >+// assertEquals(text.getRotationOfChar(1), 45, "getRotationOfChar(1) failed."); >+// assertEquals(text.getRotationOfChar(2), 0, "getRotationOfChar(2) failed."); >+// var code = -1000; >+// try { >+// var val = text.getRotationOfChar(-1) >+// } catch(e) { >+// code = e.code; >+// } >+// assertEquals(code, DOMException.INDEX_SIZE_ERR, "getRotationOfChar #1 exception failed."); >+// code = -1000; >+// try { >+// var val = text.getRotationOfChar(4) >+// } catch(e) { >+// code = e.code; >+// } >+// assertEquals(code, DOMException.INDEX_SIZE_ERR, "getRotationOfChar #2 exception failed."); >+ return 5; >+ }, >+ function () { >+// // test 79: a giant test for <svg:font>, from Cameron McCormack >+// // This tests various features of SVG fonts from SVG 1.1. It consists of >+// // a <text> element with 33 characters, styled using an SVG font that has >+// // different advance values for each glyph. The script uses >+// // SVGTextElementContent.getStartPositionOfChar() to determine where the >+// // glyph corresponding to each character was placed, and thus to work out >+// // whether the SVG font was used correctly. >+// // >+// // The font uses 100 units per em, and the text is set in 100px. Since >+// // font-size gives the size of the em box >+// // (http://www.w3.org/TR/SVG11/text.html#DOMInterfaces), the scale of the >+// // coordinate system for the glyphs is the same as the SVG document. >+// // >+// // The expectedAdvances array holds the expected advance value for each >+// // character, and expectedKerning holds the (negative) kerning for each >+// // character. getPositionOfChar() returns the actual x coordinate for the >+// // glyph, corresponding to the given character, and if multiple characters >+// // correspond to the same glyph, the same position value is returned for >+// // each of those characters. >+// // >+// // Here are the reasonings for the advance/kerning values. Note that for >+// // a given character at index i, the expected position is >+// // sum(expectedAdvances[0:i-1] + expectedKerning[0:i-1]). >+// // >+// // char advance kerning reasoning >+// // ------- ------- ------- -------------------------------------------------- >+// // A 10000 0 Normal character mapping to a single glyph. >+// // B 0 0 First character of a two character glyph, so the >+// // current position isn't advanced until the second >+// // character. >+// // C 200 0 Second character of a two character glyph, so now >+// // the position is advanced. >+// // B 300 0 Although there is a glyph for "BC" in the font, >+// // it appears after the glyph for "B", so the single >+// // character glyph for "B" should be chosen instead. >+// // D 1100 0 Normal character mapping to a single glyph. >+// // A 10000 200 Kerning of -200 is specified in the font between >+// // the "A" and "EE" glyphs. >+// // E 0 0 The first character of a two character glyph "EE". >+// // E 1300 0 The second character of a two character glyph. >+// // U 0 0 This is a glyph for the six characters "U+0046", >+// // which happen to look like a valid unicode range. >+// // This tests that the <glyph unicode=""> in the >+// // font matches exact strings rather than a range, >+// // as used in the kerning elements. >+// // + 0 0 Second character of six character glyph. >+// // 0 0 0 Third character of six character glyph. >+// // 0 0 0 Fourth character of six character glyph. >+// // 4 0 0 Fifth character of six character glyph. >+// // 6 1700 0 Sixth character of six character glyph. >+// // U 0 0 The same six character glyph that looks like a >+// // Unicode range. One of the kerning elements has >+// // u1="U+0046" u2="U+0046", which shouldn't match >+// // this, because those attributes are interpreted >+// // as Unicode ranges if they are, and normal >+// // strings otherwise. Thus there should be no >+// // kerning between these two glyphs. >+// // G 2300 200 Kerning is between this character and the next >+// // "G", since there is an <hkern> element that >+// // uses a Unicode range on its u1="" attribute >+// // and a glyph name on its g2="" attribute which >+// // both match "G". >+// // G 2300 0 Normal character with kerning before it. >+// // H 3100 0 A glyph with graphical content describing the >+// // glyph, rather than a d="" attribute. >+// // I 4300 0 Glyphs are checked in document order for one >+// // that matches, but the first glyph with >+// // unicode="I" also has lang="zh", which disqualifies >+// // it. Thus the second glyph with unicode="I" >+// // is chosen. >+// // I 4100 0 Since this I has xml:lang="zh" on it in the text, >+// // the first glyph with lang="zh" matches. >+// // J 4700 -4700 A normal glyph with kerning between the "J" and the >+// // next glyph "A" equal to the advance of the "J" >+// // glyph, so the position should stay the same. >+// // A 10000 0 Normal glyph with kerning before it. >+// // K 5900 0 The first glyph with unicode="K" does not match, >+// // since it has orientation="v", so the second >+// // glyph with unicode="K" is chosen. >+// // <spc> 6100 0 The space character should select the glyph with >+// // unicode=" ", despite it having a misleading >+// // glyph-name="L". >+// // L 6700 0 The "L" character should select the glyph with >+// // unicode=" ", despite it having a misleading >+// // glyph-name="spacev". >+// // A 2900 0 An <altGlyph> element is used to select the >+// // glyph for U+10085 instead of the one for "A". >+// // U+10085 2900 0 Tests glyph selection with a non-plane-0 >+// // character. >+// // A 10000 0 A final normal character. >+// // >+// // In addition, the script tests the value returned by >+// // SVGTextContentElement.getNumberOfChars(), which in this case should be 34. >+// // If it returned 33, then it incorrectly counted Unicode characters instead >+// // of UTF-16 codepoints (probably). >+// // >+// // See http://www.w3.org/TR/SVG11/fonts.html for a description of the glyph >+// // matching rules, and http://www.w3.org/TR/SVG11/text.html#DOMInterfaces >+// // for a description of getStartPositionOfChar() and getNumberOfChars(). >+// // >+// // Note also that the test uses DOMImplementation.createDocument() to create >+// // the SVG document. This seems to cause browsers trouble for the SVG DOM >+// // interfaces, since the document isn't being "rendered" as it might be >+// // if it were in an <iframe>. Changing the test to use an <iframe> will >+// // at least let you see the main part of the test running. >+// >+ var NS = { >+ svg: 'http://www.w3.org/2000/svg', >+ xml: 'http://www.w3.org/XML/1998/namespace', >+// xlink: 'http://www.w3.org/1999/xlink' >+ }; >+ >+ var doc = kungFuDeathGrip.childNodes[1].contentDocument; >+ while (doc.hasChildNodes()) >+ doc.removeChild(doc.firstChild); >+ doc.appendChild(doc.createElementNS(NS.svg, "svg:svg")); >+// >+// var e = function (n, as, cs) { >+// var elt = doc.createElementNS(NS.svg, n); >+// if (as) { >+// for (var an in as) { >+// var idx = an.indexOf(':'); >+// var ns = null; >+// if (idx != -1) >+// ns = NS[an.substring(0, idx)]; >+// elt.setAttributeNS(ns, an, as[an]); >+// } >+// } >+// if (cs) { >+// for (var i in cs) { >+// var c = cs[i]; >+// elt.appendChild(typeof c == 'string' ? doc.createTextNode(c) : c); >+// } >+// } >+// return elt; >+// } >+// >+// doc.documentElement.appendChild(e('font', { 'horiz-adv-x': '10000'}, [e('font-face', { 'font-family': 'HCl', 'units-per-em': '100', 'ascent': '1000', 'descent': '500'}), e('missing-glyph', null, [e('path', { 'd': 'M100,0 h800 v-100 h-800 z'})]), e('glyph', { 'unicode': 'A', 'd': 'M100,0 h100 v-100 h-100 z'}), e('glyph', { 'unicode': 'BC', 'd': 'M100,0 h100 v-100 h-100 z', 'horiz-adv-x': '200'}), e('glyph', { 'unicode': 'B', 'd': 'M100,0 h100 v-100 h-100 z', 'horiz-adv-x': '300'}), e('glyph', { 'unicode': 'C', 'd': 'M100,0 h100 v-100 h-100 z', 'horiz-adv-x': '500'}), e('glyph', { 'unicode': 'BD', 'd': 'M100,0 h100 v-100 h-100 z', 'horiz-adv-x': '700'}), e('glyph', { 'unicode': 'D', 'd': 'M100,0 h100 v-100 h-100 z', 'horiz-adv-x': '1100'}), e('glyph', { 'unicode': 'EE', 'd': 'M100,0 h100 v-100 h-100 z', 'horiz-adv-x': '1300', 'glyph-name': 'grapefruit'}), e('glyph', { 'unicode': 'U+0046', 'd': 'M100,0 h100 v-100 h-100 z', 'horiz-adv-x': '1700'}), e('glyph', { 'unicode': 'F', 'd': 'M100,0 h100 v-100 h-100 z', 'horiz-adv-x': '1900'}), e('glyph', { 'unicode': 'G', 'd': 'M100,0 h100 v-100 h-100 z', 'horiz-adv-x': '2300', 'glyph-name': 'gee'}), e('glyph', { 'unicode': '\uD800\uDC85', 'd': 'M100,0 h100 v-100 h-100 z', 'horiz-adv-x': '2900', 'id': 'astral'}), e('glyph', { 'unicode': 'H', 'horiz-adv-x': '3100'}, [e('path', { 'd': 'M100,0 h100 v-100 h-100 z'})]), e('glyph', { 'unicode': 'I', 'd': 'M100,0 h100 v-100 h-100 z', 'horiz-adv-x': '4100', 'lang': 'zh'}), e('glyph', { 'unicode': 'I', 'd': 'M100,0 h100 v-100 h-100 z', 'horiz-adv-x': '4300'}), e('glyph', { 'unicode': 'J', 'd': 'M100,0 h100 v-100 h-100 z', 'horiz-adv-x': '4700'}), e('glyph', { 'unicode': 'K', 'd': 'M100,0 h100 v-100 h-100 z', 'horiz-adv-x': '5300', 'orientation': 'v'}), e('glyph', { 'unicode': 'K', 'd': 'M100,0 h100 v-100 h-100 z', 'horiz-adv-x': '5900'}), e('glyph', { 'unicode': ' ', 'd': 'M100,0 h100 v-100 h-100 z', 'horiz-adv-x': '6100', 'glyph-name': 'L'}), e('glyph', { 'unicode': 'L', 'd': 'M100,0 h100 v-100 h-100 z', 'horiz-adv-x': '6700', 'glyph-name': 'space'}), e('hkern', { 'u1': 'A', 'u2': 'EE', 'k': '1000'}), e('hkern', { 'u1': 'A', 'g2': 'grapefruit', 'k': '-200'}), e('hkern', { 'u1': 'U+0046', 'u2': 'U+0046', 'k': '-200'}), e('hkern', { 'u1': 'U+0047-0047', 'g2': 'gee', 'k': '-200'}), e('hkern', { 'u1': 'J', 'u2': 'A', 'k': '4700'})])); >+// doc.documentElement.appendChild(e('text', { 'y': '100', 'font-family': 'HCl', 'font-size': '100px', 'letter-spacing': '0px', 'word-spacing': '0px'}, ['ABCBDAEEU+0046U+0046GGHI', e('tspan', { 'xml:lang': 'zh'}, ['I']), 'JAK L', e('altGlyph', { 'xlink:href': '#astral'}, ['A']), '\uD800\uDC85A'])); >+// >+// var t = doc.documentElement.lastChild; >+// >+// var characterDescriptions = [ >+// "a normal character", >+// "the first character of a two-character glyph", >+// "the second character of a two-character glyph", >+// "a normal character, which shouldn't be the first character of a two-character glyph", >+// "a normal character, which shouldn't be the second character of a two-character glyph", >+// "a normal character, which has some kerning after it", >+// "the first character of a two-character glyph, which has some kerning before it", >+// "the second character of a two-character glyph, which has some kerning before it", >+// "the first character of a six-character glyph, which happens to look like a Unicode range, where the range-specified glyph has kerning after it, but this glyph does not", >+// "the second character of a six-character glyph, which happens to look like a Unicode range, where the range-specified glyph has kerning after it, but this glyph does not", >+// "the third character of a six-character glyph, which happens to look like a Unicode range, where the range-specified glyph has kerning after it, but this glyph does not", >+// "the fourth character of a six-character glyph, which happens to look like a Unicode range, where the range-specified glyph has kerning after it, but this glyph does not", >+// "the fifth character of a six-character glyph, which happens to look like a Unicode range, where the range-specified glyph has kerning after it, but this glyph does not", >+// "the sixth character of a six-character glyph, which happens to look like a Unicode range, where the range-specified glyph has kerning after it, but this glyph does not", >+// "the first character of a six-character glyph, which happens to look like a Unicode range, where the range-specified glyph has kerning before it, but this glyph does not", >+// "the second character of a six-character glyph, which happens to look like a Unicode range, where the range-specified glyph has kerning before it, but this glyph does not", >+// "the third character of a six-character glyph, which happens to look like a Unicode range, where the range-specified glyph has kerning before it, but this glyph does not", >+// "the fourth character of a six-character glyph, which happens to look like a Unicode range, where the range-specified glyph has kerning before it, but this glyph does not", >+// "the fifth character of a six-character glyph, which happens to look like a Unicode range, where the range-specified glyph has kerning before it, but this glyph does not", >+// "the sixth character of a six-character glyph, which happens to look like a Unicode range, where the range-specified glyph has kerning before it, but this glyph does not", >+// "a normal character, which has some kerning after it that is specified by glyph name", >+// "a normal character, which has some kerning before it that is specified by glyph name", >+// "a normal character, whose glyph is given by child graphical content of the <glyph> element", >+// "a normal character, whose glyph should not match the one with a lang=\"\" attribute on it", >+// "a normal character, whose glyph should match the one with a lang=\"\" attribute on it", >+// "a normal character, which has some kerning after it that is equal to the advance of the character", >+// "a normal character, which has some kerning before it that is equal to the advance of the previous character", >+// "a normal character, whose glyph should not match the one with an orientation=\"v\" attribute on it", >+// "a space character, which has a misleading glyph-name=\"\" attribute", >+// "a normal character, which has a misleading glyph-name=\"\" attribute", >+// "a normal character, whose glyph is chosen to be another by using <altGlyph>", >+// "a character not in Plane 0 (high surrogate pair)", >+// "a character not in Plane 0 (low surrogate pair)", >+// "a normal character", >+// ]; >+// >+// var expectedAdvances = [ >+// 10000, // A >+// 0, // BC [0] >+// 200, // BC [1] >+// 300, // B >+// 1100, // D >+// 10000, // A >+// 0, // EE [0] >+// 1300, // EE [1] >+// 0, // U+0046 [0] >+// 0, // U+0046 [1] >+// 0, // U+0046 [2] >+// 0, // U+0046 [3] >+// 0, // U+0046 [4] >+// 1700, // U+0046 [5] >+// 0, // U+0046 [0] >+// 0, // U+0046 [1] >+// 0, // U+0046 [2] >+// 0, // U+0046 [3] >+// 0, // U+0046 [4] >+// 1700, // U+0046 [5] >+// 2300, // G >+// 2300, // G >+// 3100, // H >+// 4300, // I >+// 4100, // I (zh) >+// 4700, // J >+// 10000, // A >+// 5900, // K >+// 6100, // <space> >+// 6700, // L >+// 2900, // A (using 𐂅 altGlyph) >+// 0, // 𐂅 high surrogate pair >+// 2900, // 𐂅 low surrogate pair >+// 10000, // A >+// ]; >+// >+// var expectedKerning = [ >+// 0, // A >+// 0, // BC [0] >+// 0, // BC [1] >+// 0, // B >+// 0, // D >+// 200, // A >+// 0, // EE [0] >+// 0, // EE [1] >+// 0, // U+0046 [0] >+// 0, // U+0046 [1] >+// 0, // U+0046 [2] >+// 0, // U+0046 [3] >+// 0, // U+0046 [4] >+// 0, // U+0046 [5] >+// 0, // U+0046 [0] >+// 0, // U+0046 [1] >+// 0, // U+0046 [2] >+// 0, // U+0046 [3] >+// 0, // U+0046 [4] >+// 0, // U+0046 [5] >+// 200, // G >+// 0, // G >+// 0, // H >+// 0, // I >+// 0, // I (zh) >+// -4700, // J >+// 0, // A >+// 0, // K >+// 0, // <space> >+// 0, // L >+// 0, // A (using 𐂅 altGlyph) >+// 0, // 𐂅 high surrogate pair >+// 0, // 𐂅 low surrogate pair >+// 0, // A >+// ]; >+// >+// assertEquals(t.getNumberOfChars(), expectedAdvances.length, 'SVGSVGTextElement.getNumberOfChars() incorrect'); >+// >+// var expectedPositions = [0]; >+// for (var i = 0; i < expectedAdvances.length; i++) >+// expectedPositions.push(expectedPositions[i] + expectedAdvances[i] + expectedKerning[i]); >+// >+// var actualPositions = []; >+// for (var i = 0; i < t.getNumberOfChars(); i++) >+// actualPositions.push(t.getStartPositionOfChar(i).x); >+// actualPositions.push(t.getEndPositionOfChar(t.getNumberOfChars() - 1).x); >+// >+// for (var i = 0; i < expectedPositions.length; i++) { >+// if (expectedPositions[i] != actualPositions[i]) { >+// var s = "character position " + i + ", which is "; >+// if (i == 0) { >+// s += "before " + characterDescriptions[0]; >+// } else if (i == expectedPositions.length - 1) { >+// s += "after " + characterDescriptions[characterDescriptions.length - 1]; >+// } else { >+// s += "between " + characterDescriptions[i - 1] + " and " + characterDescriptions[i]; >+// } >+// s += ", is " + actualPositions[i] + " but should be " + expectedPositions[i] + "."; >+// fail(s); >+// } >+// } >+ return 5; >+ }, >+ function () { >+ // test 80: remove the iframes and the object >+ // (when fixing the test for http://dbaron.org/mozilla/visited-privacy, >+ // this section was flipped around so the linktest check is done first; >+ // this is to prevent the 'retry' from failing the second time since by >+ // then the kungFuDeathGrip has been nullified, if we do it first) >+ // first, check that the linktest is loaded >+ var a = document.links[1]; >+ assert(!(a == null), "linktest was null"); >+ assert(a.textContent == "YOU SHOULD NOT SEE THIS AT ALL", "linktest link couldn't be found"); // changed text when fixing http://dbaron.org/mozilla/visited-privacy >+ if (a.hasAttribute('class')) >+ return "retry"; // linktest onload didn't fire -- could be a networking issue, check that first >+ assert(!(kungFuDeathGrip == null), "kungFuDeathGrip was null"); >+ assert(!(kungFuDeathGrip.parentNode == null), "kungFuDeathGrip.parentNode was null"); >+ // ok, now remove the iframes >+ kungFuDeathGrip.parentNode.removeChild(kungFuDeathGrip); >+ kungFuDeathGrip = null; >+ // check that the xhtml files worked right >+ assert(notifications['xhtml.1'], "Script in XHTML didn't execute"); >+ assert(!notifications['xhtml.2'], "XML well-formedness error didn't stop script from executing"); >+ assert(!notifications['xhtml.3'], "Script executed despite having wrong namespace"); >+ return 5; >+ }, >+ >+ // bucket 6: ECMAScript >+ function () { >+ // test 81: length of arrays with elisions at end >+ var t1 = [,]; >+ var t2 = [,,]; >+ assertEquals(t1.length, 1, "[,] doesn't have length 1"); >+ assertEquals(t2.length, 2, "[,,] doesn't have length 2"); >+ return 6; >+ }, >+ function () { >+ // test 82: length of arrays with elisions in the middle >+ var t3 = ['a', , 'c']; >+ assertEquals(t3.length, 3, "['a',,'c'] doesn't have length 3"); >+ assert(0 in t3, "no 0 in t3"); >+ assert(!(1 in t3), "unexpected 1 in t3"); >+ assert(2 in t3, "no 2 in t3"); >+ assertEquals(t3[0], 'a', "t3[0] wrong"); >+ assertEquals(t3[2], 'c', "t3[2] wrong"); >+ return 6; >+ }, >+ function () { >+ // test 83: array methods >+ var x = ['a', 'b', 'c']; >+ assertEquals(x.unshift('A', 'B', 'C'), 6, "array.unshift() returned the wrong value"); >+ var s = x.join(undefined); >+ assertEquals(s, 'A,B,C,a,b,c', "array.join(undefined) used wrong separator"); // qv 15.4.4.5:3 >+ return 6; >+ }, >+ function () { >+ // test 84: converting numbers to strings >+ assertEquals((0.0).toFixed(4), "0.0000", "toFixed(4) wrong for 0"); >+ assertEquals((-0.0).toFixed(4), "0.0000", "toFixed(4) wrong for -0"); >+ assertEquals((0.00006).toFixed(4), "0.0001", "toFixed(4) wrong for 0.00006"); >+ assertEquals((-0.00006).toFixed(4), "-0.0001", "toFixed(4) wrong for -0.00006"); >+ assertEquals((0.0).toExponential(4), "0.0000e+0", "toExponential(4) wrong for 0"); >+ assertEquals((-0.0).toExponential(4), "0.0000e+0", "toExponential(4) wrong for -0"); >+ var x = 7e-4; >+ assertEquals(x.toPrecision(undefined), x.toString(undefined), "toPrecision(undefined) was wrong"); >+ return 6; >+ }, >+ function () { >+ // test 85: strings and string-related operations >+ // substr() and negative numbers >+ assertEquals("scathing".substr(-7, 3), "cat", "substr() wrong with negative numbers"); >+ return 6; >+ }, >+ function () { >+ // test 86: Date tests -- methods passed no arguments >+ var d = new Date(); >+ assert(isNaN(d.setMilliseconds()), "calling setMilliseconds() with no arguments didn't result in NaN"); >+ assert(isNaN(d), "date wasn't made NaN"); >+ assert(isNaN(d.getDay()), "date wasn't made NaN"); >+ return 6; >+ }, >+ function () { >+ // test 87: Date tests -- years >+ var d1 = new Date(Date.UTC(99.9, 6)); >+ assertEquals(d1.getUTCFullYear(), 1999, "Date.UTC() didn't do proper 1900 year offsetting"); >+ var d2 = new Date(98.9, 6); >+ assertEquals(d2.getFullYear(), 1998, "new Date() didn't do proper 1900 year offsetting"); >+ return 6; >+ }, >+ function () { >+ // test 88: ES3 section 7.6:3 (unicode escapes can't be used to put non-identifier characters into identifiers) >+ // and there's no other place for them in the syntax (other than strings, of course) >+ var ok = false; >+ try { >+ eval("var test = { };\ntest.i= 0;\ntest.i\\u002b= 1;\ntest.i;\n"); >+ } catch (e) { >+ ok = true; >+ } >+ assert(ok, "\\u002b was not considered a parse error in script"); >+ return 6; >+ }, >+ function () { >+ // test 89: Regular Expressions >+ var ok = true; >+ // empty classes in regexps >+ try { >+ eval("/TA[])]/.exec('TA]')"); >+ // JS regexps aren't like Perl regexps, if their character >+ // classes start with a ] that means they're empty. So this >+ // is a syntax error; if we get here it's a bug. >+ ok = false; >+ } catch (e) { } >+ assert(ok, "orphaned bracket not considered parse error in regular expression literal"); >+ try { >+ if (eval("/[]/.exec('')")) >+ ok = false; >+ } catch (e) { >+ ok = false; >+ } >+ assert(ok, "/[]/ either failed to parse or matched something"); >+ return 6; >+ }, >+ function () { >+ // test 90: Regular Expressions >+ // not back references. >+ assert(!(/(1)\0(2)/.test("12")), "NUL in regexp incorrectly ignored"); >+ assert((/(1)\0(2)/.test("1" + "\0" + "2")), "NUL in regexp didn't match correctly"); >+ assert(!(/(1)\0(2)/.test("1\02")), "octal 2 unexpectedly matched NUL"); >+ assertEquals(nullInRegexpArgumentResult, "passed", "failed //.test() check"); // nothing to see here, move along now >+ // back reference to future capture >+ var x = /(\3)(\1)(a)/.exec('cat'); // the \3 matches the empty string, qv. ES3:15.10.2.9 >+ assert(x, "/(\\3)(\\1)(a)/ failed to match 'cat'"); >+ assertEquals(x.length, 4, "/(\\3)(\\1)(a)/ failed to return four components"); >+ assertEquals(x[0], "a", "/(\\3)(\\1)(a)/ failed to find 'a' in 'cat'"); >+ assert(x[1] === "", "/(\\3)(\\1)(a)/ failed to find '' in 'cat' as first part"); >+ assert(x[2] === "", "/(\\3)(\\1)(a)/ failed to find '' in 'cat' as second part"); >+ assertEquals(x[3], "a", "/(\\3)(\\1)(a)/ failed to find 'a' in 'cat' as third part"); >+ // negative lookahead >+ x = /(?!(text))(te.t)/.exec("text testing"); >+ assertEquals(x.length, 3, "negative lookahead test failed to return the right number of bits"); >+ assertEquals(x[0], "test", "negative lookahead test failed to find the right text"); >+ assert(x[1] === undefined, "negative lookahead test failed to return undefined for negative lookahead capture"); >+ assert(x[2] === "test", "negative lookahead test failed to find the right second capture"); >+ return 6; >+ }, >+ function () { >+ // test 91: check that properties are enumerable by default >+ var test = { >+ constructor: function() { return 1; }, >+ toString: function() { return 2; }, >+ toLocaleString: function() { return 3; }, >+ valueOf: function() { return 4; }, >+ hasOwnProperty: function() { return 5; }, >+ isPrototypeOf: function() { return 6; }, >+ propertyIsEnumerable: function() { return 7; }, >+ prototype: function() { return 8; }, >+ length: function() { return 9; }, >+ unique: function() { return 10; } >+ }; >+ var results = []; >+ for (var property in test) >+ results.push([test[property](), property]); >+ results.sort(function(a, b) { >+ if (a[0] < b[0]) return -1; >+ if (a[0] > b[0]) return 1; >+ return 0; >+ }); >+ assertEquals(results.length, 10, "missing properties"); >+ for (var index = 0; index < 10; index += 1) >+ assertEquals(results[index][0], index+1, "order wrong at results["+index+"] == "); >+ var index = 0; >+ assertEquals(results[index++][1], "constructor", "failed to find constructor in expected position"); >+ assertEquals(results[index++][1], "toString", "failed to find toString in expected position"); >+ assertEquals(results[index++][1], "toLocaleString", "failed to find toLocaleString in expected position"); >+ assertEquals(results[index++][1], "valueOf", "failed to find valueOf in expected position"); >+ assertEquals(results[index++][1], "hasOwnProperty", "failed to find hasOwnProperty in expected position"); >+ assertEquals(results[index++][1], "isPrototypeOf", "failed to find isPrototypeOf in expected position"); >+ assertEquals(results[index++][1], "propertyIsEnumerable", "failed to find propertyIsEnumerable in expected position"); >+ assertEquals(results[index++][1], "prototype", "failed to find prototype in expected position"); >+ assertEquals(results[index++][1], "length", "failed to find length in expected position"); >+ assertEquals(results[index++][1], "unique", "failed to find unique in expected position"); >+ return 6; >+ }, >+ function () { >+ // test 92: internal properties of Function objects >+ // constructor is not ReadOnly >+ var f1 = function () { 1 }; >+ f1.prototype.constructor = "hello world"; >+ var f1i = new f1(); >+ assert(f1i.constructor === "hello world", "Function object's prototype's constructor was ReadOnly"); >+ // constructor is DontEnum (indeed, no properties at all on a new Function object) >+ var f2 = function () { 2 }; >+ var f2i = new f2(); >+ var count = 0; >+ for (var property in f2i) { >+ assert(property != "constructor", "Function object's prototype's constructor was not DontEnum"); >+ count += 1; >+ } >+ assertEquals(count, 0, "Function object had unexpected properties"); >+ // constructor is not DontDelete >+ var f3 = function (a, b) { 3 }; >+ delete f3.prototype.constructor; >+ var f3i = new f3(); >+ assertEquals(f3i.constructor, Object.prototype.constructor, "Function object's prototype's constructor was DontDelete (or got magically replaced)"); >+ return 6; >+ }, >+ function () { >+ // test 93: FunctionExpression semantics >+ var functest; >+ var vartest = 0; >+ var value = (function functest(arg) { >+ if (arg) >+ return 1; >+ vartest = 1; >+ functest = function (arg) { return 2; }; // this line does nothing as 'functest' is ReadOnly here >+ return functest(true); // this is therefore tail recursion and returns 1 >+ })(false); >+ assertEquals(vartest, 1, "rules in 10.1.4 not followed in FunctionBody"); >+ assertEquals(value, 1, "semantics of FunctionExpression: function Identifier ... not followed"); >+ assert(!functest, "Property in step 4 of FunctionExpression: function Identifier ... leaked to parent scope"); >+ return 6; >+ }, >+ function () { >+ // test 94: exception scope >+ var test = 'pass'; >+ try { >+ throw 'fail'; >+ } catch (test) { >+ test += 'ing'; >+ } >+ assertEquals(test, 'pass', 'outer scope poisoned by exception catch{} block'); >+ return 6; >+ }, >+ function () { >+ // test 95: types of expressions >+ var a = []; var s; >+ s = a.length = "2147483648"; >+ assertEquals(typeof s, "string", "type of |\"2147483648\"| is not string"); >+ return 6; >+ }, >+ function () { >+ // test 96: encodeURI() and encodeURIComponent() and null bytes >+ assertEquals(encodeURIComponent(String.fromCharCode(0)), '%00', "encodeURIComponent failed to encode U+0000"); >+ assertEquals(encodeURI(String.fromCharCode(0)), '%00', "encodeURI failed to encode U+0000"); >+ return 6; >+ }, >+ >+ // URIs >+ function () { >+ // test 97: data: URI parsing >+ assertEquals(d1, "one", "data: failed as escaped"); >+ assertEquals(d2, "two", "data: failed as base64"); >+ assertEquals(d3, "three", "data: failed as base64 escaped"); >+ assertEquals(d4, "four", "data: failed as base64 with spaces"); >+ assertEquals(d5, "five's", "data: failed with backslash"); >+ return 7; >+ }, >+ >+ // XHTML >+ function () { >+ // test 98: XHTML and the DOM >+ // (special test) >+ var doctype = document.implementation.createDocumentType("html", "-//W3C//DTD XHTML 1.0 Strict//EN", "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"); >+// COMMENTED OUT FOR 2011 UPDATE - doctypes are moving towards having an owner, like other nodes >+// assertEquals(doctype.ownerDocument, null, "doctype's ownerDocument was wrong after creation"); >+ var doc = document.implementation.createDocument("http://www.w3.org/1999/xhtml", "html", doctype); >+ doc.documentElement.appendChild(doc.createElementNS("http://www.w3.org/1999/xhtml", "head")); >+ doc.documentElement.appendChild(doc.createElementNS("http://www.w3.org/1999/xhtml", "body")); >+ var t = doc.createElementNS("http://www.w3.org/1999/xhtml", "title"); >+ doc.documentElement.firstChild.appendChild(t); >+ // ok we have a conforming XHTML1 doc in |doc| now. >+ assertEquals(doctype.ownerDocument, doc, "doctype's ownerDocument didn't change when it was assigned to another document"); >+ assertEquals(doc.title, "", "document had unexpected title"); >+ t.textContent = "Sparrow"; >+ assertEquals(doc.title, "Sparrow", "document.title did not update dynamically"); >+ doc.body.appendChild(doc.createElementNS("http://www.w3.org/1999/xhtml", "form")); >+ assertEquals(doc.forms.length, 1, "document.forms not updated after inserting a form"); >+ return 7; >+ }, >+ >+ // Sanity >+ function () { >+ // test 99: check for the weirdest bug ever >+ var a = document.createElement('a'); >+ a.setAttribute('href', 'http://www.example.com/'); >+ a.appendChild(document.createTextNode('www.example.com')); >+ a.href = 'http://hixie.ch/'; >+ assertEquals(a.firstChild.data, "www.example.com", "sanity did not prevail"); >+ a.href = 'http://damowmow.com/'; >+ assertEquals(a.firstChild.data, "www.example.com", "final test failed"); >+ return 7; >+ } >+ >+ ]; >+ window.parent.postMessage({num_tests: tests.length}, "*"); >+ var log = ''; >+ var delay = 10; >+ var score = 0, index = 0, retry = 0, errors = 0; >+ function update() { >+ var span = document.getElementById('score'); // not cached by JS >+ span.nextSibling.removeAttribute('class'); // no-op after first loop >+ span.nextSibling.nextSibling.firstChild.data = tests.length; // no-op after first loop >+ if (index < tests.length) { >+ var zeroPaddedIndex = index < 10 ? '0' + index : index; >+ try { >+ var beforeTest = new Date(); >+ var result = tests[index](); >+ var elapsedTest = new Date() - beforeTest; >+ if (result == "retry") { >+ // some tests uses this magical mechanism to wait for support files to load >+ // we will give this test 500 attempts (5000ms) before aborting >+ retry += 1; >+ if (retry < 500) { >+ setTimeout(update, delay); >+ return; >+ } >+ fail("timeout -- could be a networking issue"); >+ } else if (result) { >+ var bucket = document.getElementById('bucket' + result); >+ if (bucket) >+ bucket.className += 'P'; >+ score += 1; >+ if (retry > 0) { >+ errors += 1; >+ log += "Test " + zeroPaddedIndex + " passed, but took " + retry + " attempts (less than perfect).\n"; >+ } else if (elapsedTest > 33) { // 30fps >+ errors += 1; >+ log += "Test " + zeroPaddedIndex + " passed, but took " + elapsedTest + "ms (less than 30fps)\n"; >+ } >+ } else { >+ fail("no error message"); >+ } >+ window.parent.postMessage({test: index, result: "pass"}, "*"); >+ } catch (e) { >+ var s; >+ if (e.message) >+ s = e.message.replace(/\s+$/, ""); >+ else >+ s = e; >+ errors += 1; >+ log += "Test " + zeroPaddedIndex + " failed: " + s + "\n"; >+ window.parent.postMessage({test: index, result: "fail", message: s}, "*"); >+ }; >+ retry = 0; >+ index += 1; >+ span.firstChild.data = score; >+ setTimeout(update, delay); >+ } else { >+ var endTime = new Date(); >+ var elapsedTime = ((endTime - startTime) - (delay * tests.length)) / 1000; >+ log += "Total elapsed time: " + elapsedTime.toFixed(2) + "s"; >+ if (errors == 0) >+ log += "\nNo JS errors and no timing issues.\nWas the rendering pixel-for-pixel perfect too?"; >+ document.documentElement.classList.remove("reftest-wait"); >+ } >+ } >+ function report(event) { >+ // for debugging either click the "A" in "Acid3" (to get an alert) or shift-click it (to get a report) >+ if (event.shiftKey) { >+ var w = window.open(); >+ w.document.write('<pre>Failed ' + (tests.length - score) + ' of ' + tests.length + ' tests.\n' + >+ log.replace(/&/g,'&').replace(RegExp('<', 'g'), '<').replace('\0', '\\0') + >+ '<\/pre>'); >+ w.document.close(); >+ } else { >+ alert('Failed ' + (tests.length - score) + ' test' + (score == 1 ? '' : 's') + '.\n' + log) >+ } >+ } >+ </script> >+ <body onload="update() /* this attribute's value is tested in one of the tests */ "> >+ <h1 onclick="report(event)">Acid3</h1> >+ <div class="buckets" >+ ><p id="bucket1" class="z"></p >+ ><p id="bucket2" class="z"></p >+ ><p id="bucket3" class="z"></p >+ ><p id="bucket4" class="z"></p >+ ><p id="bucket5" class="z"></p >+ ><p id="bucket6" class="z"></p> >+ </div> >+ <p id="result"><span id="score">JS</span><span id="slash" class="hidden">/</span><span>?</span></p> >+ <!-- The following line is used in a number of the tests. It is done using document.write() to sidestep complaints of validity. --> >+ <script type="text/javascript">document.write('<map name=""><area href="" shape="rect" coords="2,2,4,4" alt="<\'>"><iframe src="empty.png">FAIL<\/iframe><iframe src="empty.txt">FAIL<\/iframe><iframe src="empty.html" id="selectors"><\/iframe><form action="" name="form"><input type=HIDDEN><\/form><table><tr><td><p><\/tbody> <\/table><\/map>');</script> >+ <p id="instructions">To pass the test,<span></span> a browser must use its default settings, the animation has to be smooth, the score has to end on 100/100, and the final page has to look exactly, pixel for pixel, like <a href="reference.sub.html">this reference rendering</a>.</p> >+ <p id="remove-last-child-test">Scripting must be enabled to use this test.</p> >+ </body> >+</html> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/acid/acid3/w3c-import.log b/LayoutTests/imported/w3c/web-platform-tests/acid/acid3/w3c-import.log >new file mode 100644 >index 0000000000000000000000000000000000000000..00f28c9c610d4ac4fdfc4c855791d8d5be02884a >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/acid/acid3/w3c-import.log >@@ -0,0 +1,40 @@ >+The tests in this directory were imported from the W3C repository. >+Do NOT modify these tests directly in WebKit. >+Instead, create a pull request on the WPT github: >+ https://github.com/w3c/web-platform-tests >+ >+Then run the Tools/Scripts/import-w3c-tests in WebKit to reimport >+ >+Do NOT modify or remove this file. >+ >+------------------------------------------------------------------------ >+Properties requiring vendor prefixes: >+None >+Property values requiring vendor prefixes: >+None >+------------------------------------------------------------------------ >+List of files: >+/LayoutTests/imported/w3c/web-platform-tests/acid/acid3/empty.css >+/LayoutTests/imported/w3c/web-platform-tests/acid/acid3/empty.css.headers >+/LayoutTests/imported/w3c/web-platform-tests/acid/acid3/empty.html >+/LayoutTests/imported/w3c/web-platform-tests/acid/acid3/empty.png >+/LayoutTests/imported/w3c/web-platform-tests/acid/acid3/empty.txt >+/LayoutTests/imported/w3c/web-platform-tests/acid/acid3/empty.xml >+/LayoutTests/imported/w3c/web-platform-tests/acid/acid3/empty.xml.headers >+/LayoutTests/imported/w3c/web-platform-tests/acid/acid3/favicon.ico >+/LayoutTests/imported/w3c/web-platform-tests/acid/acid3/favicon.ico.headers >+/LayoutTests/imported/w3c/web-platform-tests/acid/acid3/numbered-tests.html >+/LayoutTests/imported/w3c/web-platform-tests/acid/acid3/reference.png >+/LayoutTests/imported/w3c/web-platform-tests/acid/acid3/support-a.png >+/LayoutTests/imported/w3c/web-platform-tests/acid/acid3/support-b.png >+/LayoutTests/imported/w3c/web-platform-tests/acid/acid3/support-b.png.headers >+/LayoutTests/imported/w3c/web-platform-tests/acid/acid3/svg.xml >+/LayoutTests/imported/w3c/web-platform-tests/acid/acid3/svg.xml.headers >+/LayoutTests/imported/w3c/web-platform-tests/acid/acid3/test-expected.html >+/LayoutTests/imported/w3c/web-platform-tests/acid/acid3/test.html >+/LayoutTests/imported/w3c/web-platform-tests/acid/acid3/xhtml.1 >+/LayoutTests/imported/w3c/web-platform-tests/acid/acid3/xhtml.1.headers >+/LayoutTests/imported/w3c/web-platform-tests/acid/acid3/xhtml.2 >+/LayoutTests/imported/w3c/web-platform-tests/acid/acid3/xhtml.2.headers >+/LayoutTests/imported/w3c/web-platform-tests/acid/acid3/xhtml.3 >+/LayoutTests/imported/w3c/web-platform-tests/acid/acid3/xhtml.3.headers >diff --git a/LayoutTests/imported/w3c/web-platform-tests/acid/acid3/xhtml.1 b/LayoutTests/imported/w3c/web-platform-tests/acid/acid3/xhtml.1 >new file mode 100644 >index 0000000000000000000000000000000000000000..8daafce8cd276c00e1b429c36173c653107de4e1 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/acid/acid3/xhtml.1 >@@ -0,0 +1,11 @@ >+<html xmlns="http://www.w3.org/1999/xhtml"> >+ <head> >+ <title>Test</title> >+ </head> >+ <body> >+ <p> <strong> XHTML Test </strong> </p> >+ <script type="text/javascript"> >+ parent.notify("xhtml.1") >+ </script> >+ </body> >+</html> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/acid/acid3/xhtml.1.headers b/LayoutTests/imported/w3c/web-platform-tests/acid/acid3/xhtml.1.headers >new file mode 100644 >index 0000000000000000000000000000000000000000..f203c6368ef999e21b14c6f7158110e8f1112e5a >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/acid/acid3/xhtml.1.headers >@@ -0,0 +1 @@ >+Content-Type: text/xml >diff --git a/LayoutTests/imported/w3c/web-platform-tests/acid/acid3/xhtml.2 b/LayoutTests/imported/w3c/web-platform-tests/acid/acid3/xhtml.2 >new file mode 100644 >index 0000000000000000000000000000000000000000..c7af4f1c27fa2d8def44c42d34ed9a430d020e68 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/acid/acid3/xhtml.2 >@@ -0,0 +1,11 @@ >+<html xmlns="http://www.w3.org/1999/xhtml"> >+ <head> >+ <title>Test</title> >+ </head> >+ <body> >+ <p> <strong/> Parsing Test </strong> </p> >+ <script type="text/javascript"> >+ parent.notify("xhtml.2") >+ </script> >+ </body> >+</html> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/acid/acid3/xhtml.2.headers b/LayoutTests/imported/w3c/web-platform-tests/acid/acid3/xhtml.2.headers >new file mode 100644 >index 0000000000000000000000000000000000000000..f203c6368ef999e21b14c6f7158110e8f1112e5a >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/acid/acid3/xhtml.2.headers >@@ -0,0 +1 @@ >+Content-Type: text/xml >diff --git a/LayoutTests/imported/w3c/web-platform-tests/acid/acid3/xhtml.3 b/LayoutTests/imported/w3c/web-platform-tests/acid/acid3/xhtml.3 >new file mode 100644 >index 0000000000000000000000000000000000000000..8cd8db7360827721fcadf8362eb91e077b4b35cc >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/acid/acid3/xhtml.3 >@@ -0,0 +1,11 @@ >+<html xmlns="http://www.w3.org/1999/xhtml#"> >+ <head> >+ <title>Test</title> >+ </head> >+ <body> >+ <p> <strong> Namespace Test </strong> </p> >+ <script type="text/javascript"> >+ parent.notify("xhtml.3") >+ </script> >+ </body> >+</html> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/acid/acid3/xhtml.3.headers b/LayoutTests/imported/w3c/web-platform-tests/acid/acid3/xhtml.3.headers >new file mode 100644 >index 0000000000000000000000000000000000000000..f203c6368ef999e21b14c6f7158110e8f1112e5a >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/acid/acid3/xhtml.3.headers >@@ -0,0 +1 @@ >+Content-Type: text/xml >diff --git a/LayoutTests/imported/w3c/web-platform-tests/acid/w3c-import.log b/LayoutTests/imported/w3c/web-platform-tests/acid/w3c-import.log >new file mode 100644 >index 0000000000000000000000000000000000000000..616f61bb60bc9826227115c9c4b20ff3a1c1afb7 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/acid/w3c-import.log >@@ -0,0 +1,18 @@ >+The tests in this directory were imported from the W3C repository. >+Do NOT modify these tests directly in WebKit. >+Instead, create a pull request on the WPT github: >+ https://github.com/w3c/web-platform-tests >+ >+Then run the Tools/Scripts/import-w3c-tests in WebKit to reimport >+ >+Do NOT modify or remove this file. >+ >+------------------------------------------------------------------------ >+Properties requiring vendor prefixes: >+None >+Property values requiring vendor prefixes: >+None >+------------------------------------------------------------------------ >+List of files: >+/LayoutTests/imported/w3c/web-platform-tests/acid/OWNERS >+/LayoutTests/imported/w3c/web-platform-tests/acid/README.md >diff --git a/LayoutTests/imported/w3c/web-platform-tests/async-local-storage/OWNERS b/LayoutTests/imported/w3c/web-platform-tests/async-local-storage/OWNERS >new file mode 100644 >index 0000000000000000000000000000000000000000..7231f6248dcc89c1c75d2b0960d14098a2811e02 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/async-local-storage/OWNERS >@@ -0,0 +1 @@ >+@domenic >diff --git a/LayoutTests/imported/w3c/web-platform-tests/async-local-storage/storage-smoke-test.https.tentative-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/async-local-storage/storage-smoke-test.https.tentative-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..b015d8fd29a9a72367455280dcf03b7a6dc09e3e >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/async-local-storage/storage-smoke-test.https.tentative-expected.txt >@@ -0,0 +1,6 @@ >+CONSOLE MESSAGE: line 1: [blocked] The page at https://localhost:9443/async-local-storage/storage-smoke-test.https.tentative.html was not allowed to run insecure content from std:async-local-storage. >+ >+ >+Harness Error (TIMEOUT), message = null >+ >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/async-local-storage/storage-smoke-test.https.tentative.html b/LayoutTests/imported/w3c/web-platform-tests/async-local-storage/storage-smoke-test.https.tentative.html >new file mode 100644 >index 0000000000000000000000000000000000000000..b4d66dabc7a177742666377718b30f84a10de744 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/async-local-storage/storage-smoke-test.https.tentative.html >@@ -0,0 +1,46 @@ >+<!DOCTYPE html> >+<meta charset="utf-8"> >+<title>Async local storage storage export smoke test</title> >+ >+<script src="/resources/testharness.js"></script> >+<script src="/resources/testharnessreport.js"></script> >+ >+<script type="module"> >+import { storage } from "std:async-local-storage"; >+ >+test(() => { >+ const { backingStore } = storage; >+ assert_array_equals(Object.keys(backingStore), ["database", "store", "version"]); >+ assert_own_property(backingStore, "database"); >+ assert_own_property(backingStore, "store"); >+ assert_own_property(backingStore, "version"); >+ assert_equals(Object.getPrototypeOf(backingStore), Object.prototype); >+ >+ assert_equals(backingStore.database, "async-local-storage:default"); >+ assert_equals(backingStore.store, "store"); >+ assert_equals(backingStore.version, 1); >+}, "backingStore returns the correct object"); >+ >+promise_test(async (t) => { >+ t.add_cleanup(async () => { >+ await storage.clear(); >+ }); >+ >+ assert_equals(await storage.set("key", "value"), undefined); >+ >+ assert_equals(await storage.get("key"), "value"); >+ assert_equals(await storage.has("key"), true); >+ assert_array_equals(await storage.keys(), ["key"]); >+ assert_array_equals(await storage.values(), ["value"]); >+ >+ const entries = await storage.entries(); >+ assert_true(Array.isArray(entries)); >+ assert_equals(entries.length, 1); >+ assert_array_equals(entries[0], ["key", "value"]); >+ >+ assert_equals(await storage.delete("key"), undefined); >+ >+ assert_equals(await storage.get("key"), undefined); >+ assert_equals(await storage.has("key"), false); >+}, "storage methods work, at least for one entry with string key and value"); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/async-local-storage/w3c-import.log b/LayoutTests/imported/w3c/web-platform-tests/async-local-storage/w3c-import.log >new file mode 100644 >index 0000000000000000000000000000000000000000..e1a20c6716cb231ec93e864e99bd464e8e1d706a >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/async-local-storage/w3c-import.log >@@ -0,0 +1,18 @@ >+The tests in this directory were imported from the W3C repository. >+Do NOT modify these tests directly in WebKit. >+Instead, create a pull request on the WPT github: >+ https://github.com/w3c/web-platform-tests >+ >+Then run the Tools/Scripts/import-w3c-tests in WebKit to reimport >+ >+Do NOT modify or remove this file. >+ >+------------------------------------------------------------------------ >+Properties requiring vendor prefixes: >+None >+Property values requiring vendor prefixes: >+None >+------------------------------------------------------------------------ >+List of files: >+/LayoutTests/imported/w3c/web-platform-tests/async-local-storage/OWNERS >+/LayoutTests/imported/w3c/web-platform-tests/async-local-storage/storage-smoke-test.https.tentative.html >diff --git a/LayoutTests/imported/w3c/web-platform-tests/background-fetch/interfaces.html b/LayoutTests/imported/w3c/web-platform-tests/background-fetch/interfaces.html >index f512e45407125061d2f3aee70eb6f9192774d638..51e320e64379f0af8323aebaf3552cef8f244914 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/background-fetch/interfaces.html >+++ b/LayoutTests/imported/w3c/web-platform-tests/background-fetch/interfaces.html >@@ -12,15 +12,17 @@ > <script> > 'use strict'; > >-promise_test(function() { >- return fetch('/interfaces/background-fetch.idl') >- .then(response => response.text()) >- .then(idls => { >- var idlArray = new IdlArray(); >- idlArray.add_untested_idls('interface ServiceWorkerRegistration {};'); >- idlArray.add_untested_idls('[Exposed=ServiceWorker] interface ServiceWorkerGlobalScope {};'); >- idlArray.add_idls(idls); >- idlArray.test(); >- }); >+promise_test(async function () { >+ const idls = await fetch('/interfaces/background-fetch.idl').then(r => r.text()); >+ const dom = await fetch('/interfaces/dom.idl').then(r => r.text()); >+ >+ var idlArray = new IdlArray(); >+ idlArray.add_untested_idls('interface ServiceWorkerRegistration {};'); >+ idlArray.add_untested_idls('[Exposed=ServiceWorker] interface ServiceWorkerGlobalScope {};'); >+ idlArray.add_untested_idls('interface ExtendableEvent{};'); >+ idlArray.add_untested_idls('dictionary ExtendableEventInit{};'); >+ idlArray.add_untested_idls(dom, { only: ['EventTarget'] }); >+ idlArray.add_idls(idls); >+ idlArray.test(); > }, 'Exposed interfaces in a Document.'); > </script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/background-fetch/interfaces.worker.js b/LayoutTests/imported/w3c/web-platform-tests/background-fetch/interfaces.worker.js >index 89a7cb3da0ad7310f5c0226f2a3b695c740ef4dd..0760ffd59af52a1125eb49e55107d8943b18212d 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/background-fetch/interfaces.worker.js >+++ b/LayoutTests/imported/w3c/web-platform-tests/background-fetch/interfaces.worker.js >@@ -3,16 +3,18 @@ > importScripts('/resources/testharness.js'); > importScripts('/resources/WebIDLParser.js', '/resources/idlharness.js'); > >-promise_test(function() { >- return fetch('/interfaces/background-fetch.idl') >- .then(response => response.text()) >- .then(idls => { >- var idlArray = new IdlArray(); >- idlArray.add_untested_idls('interface ServiceWorkerRegistration {};'); >- idlArray.add_untested_idls('[Exposed=ServiceWorker] interface ServiceWorkerGlobalScope {};'); >- idlArray.add_idls(idls); >- idlArray.test(); >- }); >+promise_test(async function() { >+ const idls = await fetch('/interfaces/background-fetch.idl').then(r => r.text()); >+ const dom = await fetch('/interfaces/dom.idl').then(r => r.text()); >+ >+ var idlArray = new IdlArray(); >+ idlArray.add_untested_idls('interface ServiceWorkerRegistration {};'); >+ idlArray.add_untested_idls('[SecureContext, Exposed = (Window, Worker)] interface ServiceWorkerGlobalScope {};'); >+ idlArray.add_untested_idls('interface ExtendableEvent{};'); >+ idlArray.add_untested_idls('dictionary ExtendableEventInit{};'); >+ idlArray.add_untested_idls(dom, { only: ['EventTarget'] }); >+ idlArray.add_idls(idls); >+ idlArray.test(); > }, 'Exposed interfaces in a Service Worker.'); > > done(); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/beacon/OWNERS b/LayoutTests/imported/w3c/web-platform-tests/beacon/OWNERS >new file mode 100644 >index 0000000000000000000000000000000000000000..719eb69cf52b28d405ce9dba07d9cac523972368 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/beacon/OWNERS >@@ -0,0 +1,2 @@ >+@toddreifsteck >+@igrigorik >diff --git a/LayoutTests/imported/w3c/web-platform-tests/beacon/beacon-common.sub.js b/LayoutTests/imported/w3c/web-platform-tests/beacon/beacon-common.sub.js >index de3846b6cbc9fdfc9dfb55338d7d1bdb84a82abc..0a36283b26379e16ccfd2c33cf05e0395dc18331 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/beacon/beacon-common.sub.js >+++ b/LayoutTests/imported/w3c/web-platform-tests/beacon/beacon-common.sub.js >@@ -39,6 +39,10 @@ var emptyFormDataTest = { id: "EmptyFormData", data: CreateEmptyFormDataPayload( > var smallFormDataTest = { id: "SmallFormData", data: CreateFormDataFromPayload(smallPayload) }; > var mediumFormDataTest = { id: "MediumFormData", data: CreateFormDataFromPayload(mediumPayload) }; > var largeFormDataTest = { id: "LargeFormData", data: CreateFormDataFromPayload(largePayload) }; >+var smallSafeContentTypeEncodedTest = { id: "SmallSafeContentTypeEncoded", data: new Blob([smallPayload], { type: 'application/x-www-form-urlencoded' }) }; >+var smallSafeContentTypeFormTest = { id: "SmallSafeContentTypeForm", data: new FormData() }; >+var smallSafeContentTypeTextTest = { id: "SmallSafeContentTypeText", data: new Blob([smallPayload], { type: 'text/plain' }) }; >+var smallCORSContentTypeTextTest = { id: "SmallCORSContentTypeText", data: new Blob([smallPayload], { type: 'text/html' }) }; > // We don't test maxFormData because the extra multipart separators make it difficult to > // calculate a maxPayload. > >@@ -52,12 +56,15 @@ var bufferSourceTests = [emptyBufferSourceTest, smallBufferSourceTest, mediumBuf > var bufferSourceMaxTest = [maxBufferSourceTest]; > var formDataTests = [emptyFormDataTest, smallFormDataTest, mediumFormDataTest, largeFormDataTest]; > var formDataMaxTest = [largeFormDataTest]; >-var allTests = [].concat(stringTests, stringMaxTest, blobTests, blobMaxTest, bufferSourceTests, bufferSourceMaxTest, formDataTests, formDataMaxTest); >+var contentTypeTests = [smallSafeContentTypeEncodedTest,smallSafeContentTypeFormTest,smallSafeContentTypeTextTest,smallCORSContentTypeTextTest]; >+var allTests = [].concat(stringTests, stringMaxTest, blobTests, blobMaxTest, bufferSourceTests, bufferSourceMaxTest, formDataTests, formDataMaxTest, contentTypeTests); > > // This special cross section of test cases is meant to provide a slimmer but reasonably- > // representative set of tests for parameterization across variables (e.g. redirect codes, > // cors modes, etc.) >-var sampleTests = [noDataTest, nullDataTest, undefinedDataTest, smallStringTest, smallBlobTest, smallBufferSourceTest, smallFormDataTest]; >+var sampleTests = [noDataTest, nullDataTest, undefinedDataTest, smallStringTest, smallBlobTest, smallBufferSourceTest, smallFormDataTest, smallSafeContentTypeEncodedTest, smallSafeContentTypeFormTest, smallSafeContentTypeTextTest]; >+ >+var preflightTests = [smallCORSContentTypeTextTest]; > > // Build a test lookup table, which is useful when instructing a web worker or an iframe > // to run a test, so that we don't have to marshal the entire test case across a process boundary. >diff --git a/LayoutTests/imported/w3c/web-platform-tests/beacon/beacon-cors.sub.window.js b/LayoutTests/imported/w3c/web-platform-tests/beacon/beacon-cors.sub.window.js >index ddfdfbfa0a2796ac4bd2f9355ad7e1faa52046cf..f4bccf177e3b4585a5efe0b6cd0d6edc24fe48f9 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/beacon/beacon-cors.sub.window.js >+++ b/LayoutTests/imported/w3c/web-platform-tests/beacon/beacon-cors.sub.window.js >@@ -38,4 +38,30 @@ > runTests(sampleTests); > }); > >+// Now test a cross-origin request that doesn't use a safelisted Content-Type and ensure >+// we are applying the proper restrictions. Since a non-safelisted Content-Type request >+// header is used there should be a preflight/options request and we should only succeed >+// send the payload if the proper CORS headers are used. >+{ >+ // Implement the self.buildId extension to identify the parameterized >+ // test in the report. >+ self.buildId = function (baseId) { >+ return `${baseId}-PREFLIGHT-ALLOW`; >+ }; >+ >+ // Implement the self.buildBaseUrl and self.buildTargetUrl extensions >+ // to change the target URL to use a cross-origin domain name. >+ self.buildBaseUrl = function (baseUrl) { >+ return "http://{{domains[www]}}:{{ports[http][0]}}"; >+ }; >+ >+ // Implement the self.buildTargetUrl extension to append a directive >+ // to the handler, that it should return CORS headers for the preflight we expect. >+ self.buildTargetUrl = function (targetUrl) { >+ return `${targetUrl}&origin=http://{{host}}:{{ports[http][0]}}&credentials=true&preflightExpected=true`; >+ } >+ >+ runTests(preflightTests); >+} >+ > done(); >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/beacon/beacon-error.window.js b/LayoutTests/imported/w3c/web-platform-tests/beacon/beacon-error.window.js >index 9c037ba34f6d10bd55e007d6cf7fb74082aa6944..b53353abc1ea29679216488ef17c9c9a010a434d 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/beacon/beacon-error.window.js >+++ b/LayoutTests/imported/w3c/web-platform-tests/beacon/beacon-error.window.js >@@ -24,16 +24,25 @@ test(function() { > }, "Verify calling 'navigator.sendBeacon()' with a URL that is not a http(s) scheme throws an exception."); > > // We'll validate that we can send one beacon that uses our entire Quota and then fail to send one that is just one char. >-test(function () { >- var destinationURL = "/fetch/api/resources/trickle.py?count=1&ms=1000"; >- >- var firstSuccess = navigator.sendBeacon(destinationURL, maxPayload); >- assert_true(firstSuccess, "calling 'navigator.sendBeacon()' with our max payload size should succeed."); >+promise_test(async () => { >+ function wait(ms) { >+ return new Promise(res => step_timeout(res, ms)); >+ } >+ const url = '/fetch/api/resources/trickle.py?count=1&ms=0'; >+ assert_true(navigator.sendBeacon(url, maxPayload), >+ "calling 'navigator.sendBeacon()' with our max payload size should succeed."); > > // Now we'll send just one character. >- var secondSuccess = navigator.sendBeacon(destinationURL, "1"); >- assert_false(secondSuccess, "calling 'navigator.sendBeacon()' with just one char should fail while our Quota is used up."); >- >-}, "Verify calling 'navigator.sendBeacon()' with a small payload fails while Quota is completely utilized."); >+ assert_false(navigator.sendBeacon(url, '1'), >+ "calling 'navigator.sendBeacon()' with just one char should fail while our Quota is used up."); >+ >+ for (let i = 0; i < 20; ++i) { >+ await wait(100); >+ if (navigator.sendBeacon(url, maxPayload)) { >+ return; >+ } >+ } >+ assert_unreached('The quota should recover after fetching.'); >+}, "Verify the behavior after the quota is exhausted."); > > done(); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/beacon/beacon-navigate-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/beacon/beacon-navigate-expected.txt >index 7abb6d26da0ea57ff58046c223dca331059421ae..d5450c0b7fecf3c3318fe0e623cf6977f7df4e4a 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/beacon/beacon-navigate-expected.txt >+++ b/LayoutTests/imported/w3c/web-platform-tests/beacon/beacon-navigate-expected.txt >@@ -7,4 +7,7 @@ PASS Verify 'navigator.sendbeacon()' successfully sends for variant: SmallString > PASS Verify 'navigator.sendbeacon()' successfully sends for variant: SmallBlob-beacon-NAVIGATE > PASS Verify 'navigator.sendbeacon()' successfully sends for variant: SmallBufferSource-beacon-NAVIGATE > PASS Verify 'navigator.sendbeacon()' successfully sends for variant: SmallFormData-beacon-NAVIGATE >+PASS Verify 'navigator.sendbeacon()' successfully sends for variant: SmallSafeContentTypeEncoded-beacon-NAVIGATE >+PASS Verify 'navigator.sendbeacon()' successfully sends for variant: SmallSafeContentTypeForm-beacon-NAVIGATE >+PASS Verify 'navigator.sendbeacon()' successfully sends for variant: SmallSafeContentTypeText-beacon-NAVIGATE > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/beacon/headers/header-content-type.html b/LayoutTests/imported/w3c/web-platform-tests/beacon/headers/header-content-type.html >index 2d23adfb712c4488ca6b64a406b0a181a05fe6c0..e2f2705ee64943cc595a1cc12488270db83c40fc 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/beacon/headers/header-content-type.html >+++ b/LayoutTests/imported/w3c/web-platform-tests/beacon/headers/header-content-type.html >@@ -10,36 +10,30 @@ > <script src="/common/utils.js"></script> > <script src="/common/get-host-info.sub.js"></script> > <script> >-var RESOURCES_DIR = "/beacon/resources/"; >- >-function pollResult(test, id) { >- var checkUrl = RESOURCES_DIR + "content-type.py?cmd=get&id=" + id; >- >- return new Promise(resolve => { >- step_timeout(test.step_func(() => { >- fetch(checkUrl).then(response => { >- response.text().then(body => { >- resolve(body); >- }); >- }); >- }), 1000); >- }); >-} >+const RESOURCES_DIR = "/beacon/resources/"; > > function testContentTypeHeader(what, contentType, title) { >- var testBase = RESOURCES_DIR; >- var id = self.token(); >- var testUrl = testBase + "content-type.py?cmd=put&id=" + id; >- >- promise_test(function(test) { >+ function wait(ms) { >+ return new Promise(resolve => step_timeout(resolve, ms)); >+ } >+ promise_test(async t => { >+ const id = self.token(); >+ const testUrl = new Request(RESOURCES_DIR + "content-type.py?cmd=put&id=" + id).url; >+ assert_equals(performance.getEntriesByName(testUrl).length, 0); > assert_true(navigator.sendBeacon(testUrl, what), "SendBeacon Succeeded"); >- return pollResult(test, id) .then(result => { >- if (contentType == "multipart/form-data") { >- assert_true(result.startsWith(contentType), "Correct Content-Type header result"); >- } else { >- assert_equals(result, contentType, "Correct Content-Type header result"); >- } >- }); >+ >+ do { >+ await wait(50); >+ } while (performance.getEntriesByName(testUrl).length === 0); >+ assert_equals(performance.getEntriesByName(testUrl).length, 1); >+ const checkUrl = RESOURCES_DIR + "content-type.py?cmd=get&id=" + id; >+ const response = await fetch(checkUrl); >+ const text = await response.text(); >+ if (contentType === "multipart/form-data") { >+ assert_true(text.startsWith(contentType), "Correct Content-Type header result"); >+ } else { >+ assert_equals(text, contentType, "Correct Content-Type header result"); >+ } > }, "Test content-type header for a body " + title); > } > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/beacon/resources/beacon.py b/LayoutTests/imported/w3c/web-platform-tests/beacon/resources/beacon.py >index afa522a2a91707fcbf9dcc4845296399afb2bafa..5f2553d3c4d506f7e292cfb73d81930a83a12d76 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/beacon/resources/beacon.py >+++ b/LayoutTests/imported/w3c/web-platform-tests/beacon/resources/beacon.py >@@ -60,40 +60,52 @@ def main(request, response): > # with the unique session id, in order to retrieve a range of results > # later knowing the index range. > test_idx = request.GET.first("tidx") >- >- test_data_key = build_stash_key(session_id, test_idx) > test_data = { "id": test_id, "error": None } > >- payload = "" >- if "Content-Type" in request.headers and \ >- "form-data" in request.headers["Content-Type"]: >- if "payload" in request.POST: >- # The payload was sent as a FormData. >- payload = request.POST.first("payload") >+ # Only store the actual POST requests, not any preflight/OPTIONS requests we may get. >+ if request.method == "POST": >+ test_data_key = build_stash_key(session_id, test_idx) >+ >+ payload = "" >+ if "Content-Type" in request.headers and \ >+ "form-data" in request.headers["Content-Type"]: >+ if "payload" in request.POST: >+ # The payload was sent as a FormData. >+ payload = request.POST.first("payload") >+ else: >+ # A FormData was sent with an empty payload. >+ pass > else: >- # A FormData was sent with an empty payload. >- pass >- else: >- # The payload was sent as either a string, Blob, or BufferSource. >- payload = request.body >- >- payload_parts = filter(None, payload.split(":")) >- if len(payload_parts) > 0: >- payload_size = int(payload_parts[0]) >- >- # Confirm the payload size sent matches with the number of characters sent. >- if payload_size != len(payload_parts[1]): >- test_data["error"] = "expected %d characters but got %d" % (payload_size, len(payload_parts[1])) >+ # The payload was sent as either a string, Blob, or BufferSource. >+ payload = request.body >+ >+ payload_parts = filter(None, payload.split(":")) >+ if len(payload_parts) > 0: >+ payload_size = int(payload_parts[0]) >+ >+ # Confirm the payload size sent matches with the number of characters sent. >+ if payload_size != len(payload_parts[1]): >+ test_data["error"] = "expected %d characters but got %d" % (payload_size, len(payload_parts[1])) >+ else: >+ # Confirm the payload contains the correct characters. >+ for i in range(0, payload_size): >+ if payload_parts[1][i] != "*": >+ test_data["error"] = "expected '*' at index %d but got '%s''" % (i, payload_parts[1][i]) >+ break >+ >+ # Store the result in the stash so that it can be retrieved >+ # later with a 'stat' command. >+ request.server.stash.put(test_data_key, test_data) >+ elif request.method == "OPTIONS": >+ # If we expect a preflight, then add the cors headers we expect, otherwise log an error as we shouldn't >+ # send a preflight for all requests. >+ if "preflightExpected" in request.GET: >+ response.headers.set("Access-Control-Allow-Headers", "content-type") >+ response.headers.set("Access-Control-Allow-Methods", "POST") > else: >- # Confirm the payload contains the correct characters. >- for i in range(0, payload_size): >- if payload_parts[1][i] != "*": >- test_data["error"] = "expected '*' at index %d but got '%s''" % (i, payload_parts[1][i]) >- break >- >- # Store the result in the stash so that it can be retrieved >- # later with a 'stat' command. >- request.server.stash.put(test_data_key, test_data) >+ test_data_key = build_stash_key(session_id, test_idx) >+ test_data["error"] = "Preflight not expected." >+ request.server.stash.put(test_data_key, test_data) > elif command == "stat": > test_idx_min = int(request.GET.first("tidx_min")) > test_idx_max = int(request.GET.first("tidx_max")) >diff --git a/LayoutTests/imported/w3c/web-platform-tests/beacon/w3c-import.log b/LayoutTests/imported/w3c/web-platform-tests/beacon/w3c-import.log >index e2e1c720f57fd7a383a9bc7ff475de7bee73e699..0887376b09285ffcf707d458db9ee4bec630ceee 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/beacon/w3c-import.log >+++ b/LayoutTests/imported/w3c/web-platform-tests/beacon/w3c-import.log >@@ -14,6 +14,7 @@ Property values requiring vendor prefixes: > None > ------------------------------------------------------------------------ > List of files: >+/LayoutTests/imported/w3c/web-platform-tests/beacon/OWNERS > /LayoutTests/imported/w3c/web-platform-tests/beacon/beacon-basic-blob.html > /LayoutTests/imported/w3c/web-platform-tests/beacon/beacon-basic-blobMax.html > /LayoutTests/imported/w3c/web-platform-tests/beacon/beacon-basic-buffersource.html >diff --git a/LayoutTests/imported/w3c/web-platform-tests/budget-api/OWNERS b/LayoutTests/imported/w3c/web-platform-tests/budget-api/OWNERS >new file mode 100644 >index 0000000000000000000000000000000000000000..9cc0eff9fd27ff31f34c64222976322b62fe206a >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/budget-api/OWNERS >@@ -0,0 +1 @@ >+@beverloo >diff --git a/LayoutTests/imported/w3c/web-platform-tests/budget-api/interfaces.any-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/budget-api/interfaces.any-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..30bef165f27d7aceae73db9e679132cf8a046129 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/budget-api/interfaces.any-expected.txt >@@ -0,0 +1,27 @@ >+CONSOLE MESSAGE: line 331: callback not yet supported >+CONSOLE MESSAGE: line 331: callback not yet supported >+ >+FAIL budget-api interfaces. promise_test: Unhandled rejection with value: object "Unrecognised tokens, line 1 (tokens: '{"error": {') >+[ >+ { >+ "type": "other", >+ "value": "{" >+ }, >+ { >+ "type": "string", >+ "value": "\"error\"" >+ }, >+ { >+ "type": "other", >+ "value": ":" >+ }, >+ { >+ "type": "whitespace", >+ "value": " " >+ }, >+ { >+ "type": "other", >+ "value": "{" >+ } >+]" >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/budget-api/interfaces.any.html b/LayoutTests/imported/w3c/web-platform-tests/budget-api/interfaces.any.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/budget-api/interfaces.any.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/budget-api/interfaces.any.js b/LayoutTests/imported/w3c/web-platform-tests/budget-api/interfaces.any.js >new file mode 100644 >index 0000000000000000000000000000000000000000..84e8874182a2f696c2efa06ffa382dc1141e1c01 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/budget-api/interfaces.any.js >@@ -0,0 +1,24 @@ >+// META: script=/resources/WebIDLParser.js >+// META: script=/resources/idlharness.js >+ >+'use strict'; >+ >+// See https://wicg.github.io/budget-api/ >+ >+promise_test(async () => { >+ const html = await fetch('/interfaces/html.idl').then(r => r.text()); >+ const workers = await fetch('/interfaces/dedicated-workers.idl').then(r => r.text()); >+ const idl = await fetch('/interfaces/budget-api.idl').then(r => r.text()); >+ >+ const idlArray = new IdlArray(); >+ idlArray.add_untested_idls(html, { only: [ >+ 'Navigator', >+ 'NavigatorContentUtils', >+ 'NavigatorCookies', >+ 'NavigatorPlugins', >+ ] }); >+ idlArray.add_untested_idls(workers); >+ idlArray.add_idls(idl); >+ idlArray.test(); >+ done(); >+}, 'budget-api interfaces.'); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/budget-api/interfaces.any.worker-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/budget-api/interfaces.any.worker-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..098a1948141463ff9b2d4691c0830dfdec3aa151 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/budget-api/interfaces.any.worker-expected.txt >@@ -0,0 +1,25 @@ >+ >+FAIL budget-api interfaces. promise_test: Unhandled rejection with value: object "Unrecognised tokens, line 1 (tokens: '{"error": {') >+[ >+ { >+ "type": "other", >+ "value": "{" >+ }, >+ { >+ "type": "string", >+ "value": "\"error\"" >+ }, >+ { >+ "type": "other", >+ "value": ":" >+ }, >+ { >+ "type": "whitespace", >+ "value": " " >+ }, >+ { >+ "type": "other", >+ "value": "{" >+ } >+]" >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/budget-api/interfaces.any.worker.html b/LayoutTests/imported/w3c/web-platform-tests/budget-api/interfaces.any.worker.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/budget-api/interfaces.any.worker.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/budget-api/w3c-import.log b/LayoutTests/imported/w3c/web-platform-tests/budget-api/w3c-import.log >new file mode 100644 >index 0000000000000000000000000000000000000000..c50ea38ce9a62b2d7b2a5f7279d8eb86f83b87e2 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/budget-api/w3c-import.log >@@ -0,0 +1,18 @@ >+The tests in this directory were imported from the W3C repository. >+Do NOT modify these tests directly in WebKit. >+Instead, create a pull request on the WPT github: >+ https://github.com/w3c/web-platform-tests >+ >+Then run the Tools/Scripts/import-w3c-tests in WebKit to reimport >+ >+Do NOT modify or remove this file. >+ >+------------------------------------------------------------------------ >+Properties requiring vendor prefixes: >+None >+Property values requiring vendor prefixes: >+None >+------------------------------------------------------------------------ >+List of files: >+/LayoutTests/imported/w3c/web-platform-tests/budget-api/OWNERS >+/LayoutTests/imported/w3c/web-platform-tests/budget-api/interfaces.any.js >diff --git a/LayoutTests/platform/mac/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-PSS.https.worker-expected.txt b/LayoutTests/platform/mac/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-PSS.https.worker-expected.txt >deleted file mode 100644 >index 037f0956f5d4536ef735ff168015d219d3020a50..0000000000000000000000000000000000000000 >--- a/LayoutTests/platform/mac/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-PSS.https.worker-expected.txt >+++ /dev/null >@@ -1,394 +0,0 @@ >- >-PASS Bad algorithm: generateKey(AES, false, [decrypt]) >-PASS Bad algorithm: generateKey(AES, true, [decrypt]) >-PASS Bad algorithm: generateKey(AES, RED, [decrypt]) >-PASS Bad algorithm: generateKey(AES, 7, [decrypt]) >-PASS Bad algorithm: generateKey(AES, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey(AES, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey(AES, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey(AES, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey(AES, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey(AES, false, [sign]) >-PASS Bad algorithm: generateKey(AES, true, [sign]) >-PASS Bad algorithm: generateKey(AES, RED, [sign]) >-PASS Bad algorithm: generateKey(AES, 7, [sign]) >-PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey(AES, false, [deriveBits]) >-PASS Bad algorithm: generateKey(AES, true, [deriveBits]) >-PASS Bad algorithm: generateKey(AES, RED, [deriveBits]) >-PASS Bad algorithm: generateKey(AES, 7, [deriveBits]) >-PASS Bad algorithm: generateKey(AES, false, []) >-PASS Bad algorithm: generateKey(AES, true, []) >-PASS Bad algorithm: generateKey(AES, RED, []) >-PASS Bad algorithm: generateKey(AES, 7, []) >-PASS Bad algorithm: generateKey(AES, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey(AES, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey(AES, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey(AES, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, false, [decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, true, [decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: AES}, false, [sign]) >-PASS Bad algorithm: generateKey({name: AES}, true, [sign]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [sign]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [sign]) >-PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, false, []) >-PASS Bad algorithm: generateKey({name: AES}, true, []) >-PASS Bad algorithm: generateKey({name: AES}, RED, []) >-PASS Bad algorithm: generateKey({name: AES}, 7, []) >-PASS Bad algorithm: generateKey({name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, []) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, []) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, []) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, []) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, []) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, decrypt]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, []) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, []) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, []) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, []) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, encrypt]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, encrypt]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, encrypt]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, decrypt]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, decrypt]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, wrapKey]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, wrapKey]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, wrapKey]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, unwrapKey]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, unwrapKey]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, unwrapKey]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, encrypt]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, encrypt]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, encrypt]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, decrypt]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, decrypt]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, wrapKey]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, wrapKey]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, wrapKey]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, unwrapKey]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, unwrapKey]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, unwrapKey]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, deriveKey]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, deriveBits]) >-PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, deriveBits]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1}}, false, [sign]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1}}, true, [sign]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1}}, false, [verify, sign]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1}}, true, [verify, sign]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1}}, false, []) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1}}, true, []) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1}}, false, [sign, verify, sign, sign, verify]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1}}, true, [sign, verify, sign, sign, verify]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [sign]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [sign]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [verify, sign]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [verify, sign]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 0}}, false, []) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 0}}, true, []) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [sign, verify, sign, sign, verify]) >-PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [sign, verify, sign, sign, verify]) >-PASS Empty usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >-PASS Empty usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >-PASS Empty usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) >-PASS Empty usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) >- >diff --git a/LayoutTests/platform/mac/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-PSS.https.worker-expected.txt b/LayoutTests/platform/mac/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-PSS.https.worker-expected.txt >deleted file mode 100644 >index 9cd26079b0c9484e30c3bcfba7d860539d9eab1d..0000000000000000000000000000000000000000 >--- a/LayoutTests/platform/mac/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-PSS.https.worker-expected.txt >+++ /dev/null >@@ -1,38 +0,0 @@ >- >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [verify, sign]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, verify, sign, sign, verify]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [verify, sign]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, verify, sign, sign, verify]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [verify, sign]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, verify, sign, sign, verify]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [verify, sign]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, verify, sign, sign, verify]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [verify, sign]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, verify, sign, sign, verify]) >-PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [verify, sign]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, verify, sign, sign, verify]) >-PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify]) >- >diff --git a/LayoutTests/platform/mac/imported/w3c/web-platform-tests/beacon/headers/header-content-type-expected.txt b/LayoutTests/platform/mac/imported/w3c/web-platform-tests/beacon/headers/header-content-type-expected.txt >index 60ee6e5eac9398982e63cc40a81e3f6f626c754a..3d8e9dc55d8ab8f3c81f784e926eb2b296709fb2 100644 >--- a/LayoutTests/platform/mac/imported/w3c/web-platform-tests/beacon/headers/header-content-type-expected.txt >+++ b/LayoutTests/platform/mac/imported/w3c/web-platform-tests/beacon/headers/header-content-type-expected.txt >@@ -1,8 +1,10 @@ > >-PASS Test content-type header for a body string >-PASS Test content-type header for a body ArrayBufferView >-PASS Test content-type header for a body ArrayBuffer >-PASS Test content-type header for a body Blob >-PASS Test content-type header for a body FormData >-PASS Test content-type header for a body URLSearchParams >+Harness Error (TIMEOUT), message = null >+ >+TIMEOUT Test content-type header for a body string Test timed out >+NOTRUN Test content-type header for a body ArrayBufferView >+NOTRUN Test content-type header for a body ArrayBuffer >+NOTRUN Test content-type header for a body Blob >+NOTRUN Test content-type header for a body FormData >+NOTRUN Test content-type header for a body URLSearchParams >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 186267
:
342044
|
342050
|
342057
|
342061
|
342064
|
342065
|
342066
|
342073
|
342074
|
342076
|
342078
|
342251
|
342256
|
342257
|
342260
|
342261
|
342275
|
342291
|
342294