Bug 1279809 - Update web-platform-tests expected data to revision 664c6072db0f96031ff775f4a6c0a744e77c3265, a=testonly
authorJames Graham <james@hoppipolla.co.uk>
Fri, 10 Jun 2016 14:15:28 +0100
changeset 342488 6338e9f190479c7418c5ee229dab41b5177ab139
parent 342487 39e17b36a828718bf8b3503f963e35d7f6593b2c
child 342489 b46bd22c4626b8527b2d5fd5d5e385ae42ca3f7a
push id6389
push userraliiev@mozilla.com
push dateMon, 19 Sep 2016 13:38:22 +0000
treeherdermozilla-beta@01d67bfe6c81 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewerstestonly
bugs1279809
milestone50.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1279809 - Update web-platform-tests expected data to revision 664c6072db0f96031ff775f4a6c0a744e77c3265, a=testonly MozReview-Commit-ID: 5ahwijUDRZo
testing/web-platform/meta/FileAPI/blob/Blob-constructor.html.ini
testing/web-platform/meta/WebCryptoAPI/generateKey/failures_AES-CBC.worker.js.ini
testing/web-platform/meta/WebCryptoAPI/generateKey/failures_AES-CTR.worker.js.ini
testing/web-platform/meta/WebCryptoAPI/generateKey/failures_AES-GCM.worker.js.ini
testing/web-platform/meta/WebCryptoAPI/generateKey/failures_AES-KW.worker.js.ini
testing/web-platform/meta/WebCryptoAPI/generateKey/failures_ECDH.worker.js.ini
testing/web-platform/meta/WebCryptoAPI/generateKey/failures_ECDSA.worker.js.ini
testing/web-platform/meta/WebCryptoAPI/generateKey/failures_HMAC.worker.js.ini
testing/web-platform/meta/WebCryptoAPI/generateKey/failures_RSA-OAEP.worker.js.ini
testing/web-platform/meta/WebCryptoAPI/generateKey/failures_RSA-PSS.worker.js.ini
testing/web-platform/meta/WebCryptoAPI/generateKey/failures_RSASSA-PKCS1-v1_5.worker.js.ini
testing/web-platform/meta/WebCryptoAPI/generateKey/successes_AES-CBC.worker.js.ini
testing/web-platform/meta/WebCryptoAPI/generateKey/successes_AES-CTR.worker.js.ini
testing/web-platform/meta/WebCryptoAPI/generateKey/successes_AES-GCM.worker.js.ini
testing/web-platform/meta/WebCryptoAPI/generateKey/successes_AES-KW.worker.js.ini
testing/web-platform/meta/WebCryptoAPI/generateKey/successes_ECDH.worker.js.ini
testing/web-platform/meta/WebCryptoAPI/generateKey/successes_ECDSA.worker.js.ini
testing/web-platform/meta/WebCryptoAPI/generateKey/successes_HMAC.worker.js.ini
testing/web-platform/meta/WebCryptoAPI/generateKey/successes_RSA-OAEP.worker.js.ini
testing/web-platform/meta/WebCryptoAPI/generateKey/successes_RSA-PSS.worker.js.ini
testing/web-platform/meta/WebCryptoAPI/generateKey/successes_RSASSA-PKCS1-v1_5.worker.js.ini
testing/web-platform/meta/WebCryptoAPI/generateKey/test_failures_AES-CBC.html.ini
testing/web-platform/meta/WebCryptoAPI/generateKey/test_failures_AES-CTR.html.ini
testing/web-platform/meta/WebCryptoAPI/generateKey/test_failures_AES-GCM.html.ini
testing/web-platform/meta/WebCryptoAPI/generateKey/test_failures_AES-KW.html.ini
testing/web-platform/meta/WebCryptoAPI/generateKey/test_failures_ECDH.html.ini
testing/web-platform/meta/WebCryptoAPI/generateKey/test_failures_ECDSA.html.ini
testing/web-platform/meta/WebCryptoAPI/generateKey/test_failures_HMAC.html.ini
testing/web-platform/meta/WebCryptoAPI/generateKey/test_failures_RSA-OAEP.html.ini
testing/web-platform/meta/WebCryptoAPI/generateKey/test_failures_RSA-PSS.html.ini
testing/web-platform/meta/WebCryptoAPI/generateKey/test_failures_RSASSA-PKCS1-v1_5.html.ini
testing/web-platform/meta/WebCryptoAPI/generateKey/test_successes_AES-CBC.html.ini
testing/web-platform/meta/WebCryptoAPI/generateKey/test_successes_RSA-OAEP.html.ini
testing/web-platform/meta/WebCryptoAPI/generateKey/test_successes_RSA-PSS.html.ini
testing/web-platform/meta/WebCryptoAPI/generateKey/test_successes_RSASSA-PKCS1-v1_5.html.ini
testing/web-platform/meta/WebCryptoAPI/idlharness.worker.js.ini
testing/web-platform/meta/XMLHttpRequest/open-url-bogus.htm.ini
testing/web-platform/meta/cors/response-headers.htm.ini
testing/web-platform/meta/dom/historical.html.ini
testing/web-platform/meta/dom/interfaces.html.ini
testing/web-platform/meta/fetch/api/redirect/redirect-location-worker.html.ini
testing/web-platform/meta/fetch/api/redirect/redirect-location.html.ini
testing/web-platform/meta/html/infrastructure/urls/resolving-urls/query-encoding/utf-16be.html.ini
testing/web-platform/meta/html/infrastructure/urls/resolving-urls/query-encoding/utf-16le.html.ini
testing/web-platform/meta/html/infrastructure/urls/resolving-urls/query-encoding/utf-8.html.ini
testing/web-platform/meta/html/infrastructure/urls/resolving-urls/query-encoding/windows-1252.html.ini
testing/web-platform/meta/html/semantics/forms/form-control-infrastructure/form.html.ini
testing/web-platform/meta/html/semantics/forms/form-submission-0/submit-entity-body.html.ini
testing/web-platform/meta/html/semantics/forms/textfieldselection/select-event.html.ini
testing/web-platform/meta/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-support.htm.ini
testing/web-platform/meta/html/webappapis/scripting/processing-model-2/body-onerror-compile-error-data-url.html.ini
testing/web-platform/meta/html/webappapis/scripting/processing-model-2/body-onerror-compile-error.html.ini
testing/web-platform/meta/html/webappapis/scripting/processing-model-2/body-onerror-runtime-error.html.ini
testing/web-platform/meta/html/webappapis/scripting/processing-model-2/compile-error-data-url.html.ini
testing/web-platform/meta/html/webappapis/scripting/processing-model-2/runtime-error-data-url.html.ini
testing/web-platform/meta/mediacapture-streams/GUM-api.html.ini
testing/web-platform/meta/mediacapture-streams/GUM-api.https.html.ini
testing/web-platform/meta/mediacapture-streams/GUM-deny.html.ini
testing/web-platform/meta/mediacapture-streams/GUM-deny.https.html.ini
testing/web-platform/meta/mediacapture-streams/GUM-empty-option-param.html.ini
testing/web-platform/meta/mediacapture-streams/GUM-empty-option-param.https.html.ini
testing/web-platform/meta/mediacapture-streams/GUM-impossible-constraint.html.ini
testing/web-platform/meta/mediacapture-streams/GUM-impossible-constraint.https.html.ini
testing/web-platform/meta/mediacapture-streams/GUM-optional-constraint.html.ini
testing/web-platform/meta/mediacapture-streams/GUM-optional-constraint.https.html.ini
testing/web-platform/meta/mediacapture-streams/GUM-trivial-constraint.html.ini
testing/web-platform/meta/mediacapture-streams/GUM-trivial-constraint.https.html.ini
testing/web-platform/meta/mediacapture-streams/GUM-unknownkey-option-param.html.ini
testing/web-platform/meta/mediacapture-streams/GUM-unknownkey-option-param.https.html.ini
testing/web-platform/meta/mediacapture-streams/MediaStream-MediaElement-preload-none.html.ini
testing/web-platform/meta/mediacapture-streams/MediaStream-MediaElement-preload-none.https.html.ini
testing/web-platform/meta/mediacapture-streams/MediaStream-MediaElement-srcObject.html.ini
testing/web-platform/meta/mediacapture-streams/MediaStream-MediaElement-srcObject.https.html.ini
testing/web-platform/meta/mediacapture-streams/MediaStream-add-audio-track.html.ini
testing/web-platform/meta/mediacapture-streams/MediaStream-add-audio-track.https.html.ini
testing/web-platform/meta/mediacapture-streams/MediaStream-audio-only.html.ini
testing/web-platform/meta/mediacapture-streams/MediaStream-audio-only.https.html.ini
testing/web-platform/meta/mediacapture-streams/MediaStream-finished-add.html.ini
testing/web-platform/meta/mediacapture-streams/MediaStream-finished-add.https.html.ini
testing/web-platform/meta/mediacapture-streams/MediaStream-gettrackid.html.ini
testing/web-platform/meta/mediacapture-streams/MediaStream-gettrackid.https.html.ini
testing/web-platform/meta/mediacapture-streams/MediaStream-id-manual.https.html.ini
testing/web-platform/meta/mediacapture-streams/MediaStream-idl.html.ini
testing/web-platform/meta/mediacapture-streams/MediaStream-idl.https.html.ini
testing/web-platform/meta/mediacapture-streams/MediaStream-removetrack.html.ini
testing/web-platform/meta/mediacapture-streams/MediaStream-removetrack.https.html.ini
testing/web-platform/meta/mediacapture-streams/MediaStream-video-only.html.ini
testing/web-platform/meta/mediacapture-streams/MediaStream-video-only.https.html.ini
testing/web-platform/meta/mediacapture-streams/MediaStreamTrack-MediaElement-disabled-audio-is-silence.html.ini
testing/web-platform/meta/mediacapture-streams/MediaStreamTrack-MediaElement-disabled-audio-is-silence.https.html.ini
testing/web-platform/meta/mediacapture-streams/MediaStreamTrack-MediaElement-disabled-video-is-black.html.ini
testing/web-platform/meta/mediacapture-streams/MediaStreamTrack-MediaElement-disabled-video-is-black.https.html.ini
testing/web-platform/meta/mediacapture-streams/MediaStreamTrack-end.html.ini
testing/web-platform/meta/mediacapture-streams/MediaStreamTrack-end.https.html.ini
testing/web-platform/meta/mediacapture-streams/MediaStreamTrack-id.html.ini
testing/web-platform/meta/mediacapture-streams/MediaStreamTrack-id.https.html.ini
testing/web-platform/meta/mediacapture-streams/MediaStreamTrack-init.html.ini
testing/web-platform/meta/mediacapture-streams/MediaStreamTrack-init.https.html.ini
testing/web-platform/meta/pointerevents/pointerevent_constructor.html.ini
testing/web-platform/meta/presentation-api/controlling-ua/PresentationRequest_error.html.ini
testing/web-platform/meta/presentation-api/controlling-ua/PresentationRequest_success.html.ini
testing/web-platform/meta/presentation-api/controlling-ua/getAvailability.html.ini
testing/web-platform/meta/presentation-api/controlling-ua/startNewPresentation_error.html.ini
testing/web-platform/meta/progress-events/interface.html.ini
testing/web-platform/meta/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-http/img-tag/insecure-protocol.keep-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-http/img-tag/insecure-protocol.no-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-http/img-tag/insecure-protocol.swap-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-https/img-tag/upgrade-protocol.keep-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-https/img-tag/upgrade-protocol.no-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-https/img-tag/upgrade-protocol.swap-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/img-tag/insecure-protocol.keep-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/img-tag/insecure-protocol.no-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/img-tag/insecure-protocol.swap-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-https/img-tag/upgrade-protocol.keep-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-https/img-tag/upgrade-protocol.no-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-https/img-tag/upgrade-protocol.swap-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/no-referrer/http-rp/cross-origin/http-http/fetch-request/generic.keep-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/no-referrer/http-rp/cross-origin/http-http/fetch-request/generic.no-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/no-referrer/http-rp/cross-origin/http-http/fetch-request/generic.swap-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/no-referrer/http-rp/cross-origin/http-http/iframe-tag/generic.keep-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/no-referrer/http-rp/cross-origin/http-http/iframe-tag/generic.no-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/no-referrer/http-rp/cross-origin/http-http/iframe-tag/generic.swap-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/no-referrer/http-rp/cross-origin/http-http/img-tag/generic.keep-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/no-referrer/http-rp/cross-origin/http-http/img-tag/generic.no-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/no-referrer/http-rp/cross-origin/http-http/img-tag/generic.swap-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/no-referrer/http-rp/cross-origin/http-http/script-tag/generic.keep-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/no-referrer/http-rp/cross-origin/http-http/script-tag/generic.no-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/no-referrer/http-rp/cross-origin/http-http/script-tag/generic.swap-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/no-referrer/http-rp/cross-origin/http-http/xhr-request/generic.keep-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/no-referrer/http-rp/cross-origin/http-http/xhr-request/generic.no-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/no-referrer/http-rp/cross-origin/http-http/xhr-request/generic.swap-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/no-referrer/http-rp/cross-origin/http-https/fetch-request/generic.keep-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/no-referrer/http-rp/cross-origin/http-https/fetch-request/generic.no-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/no-referrer/http-rp/cross-origin/http-https/fetch-request/generic.swap-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/no-referrer/http-rp/cross-origin/http-https/iframe-tag/generic.keep-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/no-referrer/http-rp/cross-origin/http-https/iframe-tag/generic.no-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/no-referrer/http-rp/cross-origin/http-https/iframe-tag/generic.swap-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/no-referrer/http-rp/cross-origin/http-https/img-tag/generic.keep-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/no-referrer/http-rp/cross-origin/http-https/img-tag/generic.no-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/no-referrer/http-rp/cross-origin/http-https/img-tag/generic.swap-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/no-referrer/http-rp/cross-origin/http-https/script-tag/generic.keep-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/no-referrer/http-rp/cross-origin/http-https/script-tag/generic.no-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/no-referrer/http-rp/cross-origin/http-https/script-tag/generic.swap-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/no-referrer/http-rp/cross-origin/http-https/xhr-request/generic.keep-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/no-referrer/http-rp/cross-origin/http-https/xhr-request/generic.no-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/no-referrer/http-rp/cross-origin/http-https/xhr-request/generic.swap-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/no-referrer/http-rp/same-origin/http-http/fetch-request/generic.keep-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/no-referrer/http-rp/same-origin/http-http/fetch-request/generic.no-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/no-referrer/http-rp/same-origin/http-http/fetch-request/generic.swap-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/no-referrer/http-rp/same-origin/http-http/iframe-tag/generic.keep-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/no-referrer/http-rp/same-origin/http-http/iframe-tag/generic.no-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/no-referrer/http-rp/same-origin/http-http/iframe-tag/generic.swap-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/no-referrer/http-rp/same-origin/http-http/img-tag/generic.keep-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/no-referrer/http-rp/same-origin/http-http/img-tag/generic.no-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/no-referrer/http-rp/same-origin/http-http/img-tag/generic.swap-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/no-referrer/http-rp/same-origin/http-http/script-tag/generic.keep-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/no-referrer/http-rp/same-origin/http-http/script-tag/generic.no-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/no-referrer/http-rp/same-origin/http-http/script-tag/generic.swap-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/no-referrer/http-rp/same-origin/http-http/xhr-request/generic.keep-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/no-referrer/http-rp/same-origin/http-http/xhr-request/generic.no-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/no-referrer/http-rp/same-origin/http-http/xhr-request/generic.swap-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/no-referrer/http-rp/same-origin/http-https/fetch-request/generic.keep-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/no-referrer/http-rp/same-origin/http-https/fetch-request/generic.no-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/no-referrer/http-rp/same-origin/http-https/fetch-request/generic.swap-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/no-referrer/http-rp/same-origin/http-https/iframe-tag/generic.keep-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/no-referrer/http-rp/same-origin/http-https/iframe-tag/generic.no-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/no-referrer/http-rp/same-origin/http-https/iframe-tag/generic.swap-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/no-referrer/http-rp/same-origin/http-https/img-tag/generic.keep-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/no-referrer/http-rp/same-origin/http-https/img-tag/generic.no-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/no-referrer/http-rp/same-origin/http-https/img-tag/generic.swap-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/no-referrer/http-rp/same-origin/http-https/script-tag/generic.keep-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/no-referrer/http-rp/same-origin/http-https/script-tag/generic.no-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/no-referrer/http-rp/same-origin/http-https/script-tag/generic.swap-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/no-referrer/http-rp/same-origin/http-https/xhr-request/generic.keep-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/no-referrer/http-rp/same-origin/http-https/xhr-request/generic.no-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/no-referrer/http-rp/same-origin/http-https/xhr-request/generic.swap-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-only/http-rp/cross-origin/http-http/fetch-request/generic.keep-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-only/http-rp/cross-origin/http-http/fetch-request/generic.no-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-only/http-rp/cross-origin/http-http/fetch-request/generic.swap-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-only/http-rp/cross-origin/http-http/iframe-tag/generic.keep-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-only/http-rp/cross-origin/http-http/iframe-tag/generic.no-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-only/http-rp/cross-origin/http-http/iframe-tag/generic.swap-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-only/http-rp/cross-origin/http-http/img-tag/generic.keep-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-only/http-rp/cross-origin/http-http/img-tag/generic.no-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-only/http-rp/cross-origin/http-http/img-tag/generic.swap-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-only/http-rp/cross-origin/http-http/script-tag/generic.keep-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-only/http-rp/cross-origin/http-http/script-tag/generic.no-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-only/http-rp/cross-origin/http-http/script-tag/generic.swap-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-only/http-rp/cross-origin/http-http/xhr-request/generic.keep-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-only/http-rp/cross-origin/http-http/xhr-request/generic.no-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-only/http-rp/cross-origin/http-http/xhr-request/generic.swap-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-only/http-rp/cross-origin/http-https/fetch-request/generic.keep-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-only/http-rp/cross-origin/http-https/fetch-request/generic.no-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-only/http-rp/cross-origin/http-https/fetch-request/generic.swap-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-only/http-rp/cross-origin/http-https/iframe-tag/generic.keep-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-only/http-rp/cross-origin/http-https/iframe-tag/generic.no-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-only/http-rp/cross-origin/http-https/iframe-tag/generic.swap-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-only/http-rp/cross-origin/http-https/img-tag/generic.keep-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-only/http-rp/cross-origin/http-https/img-tag/generic.no-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-only/http-rp/cross-origin/http-https/img-tag/generic.swap-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-only/http-rp/cross-origin/http-https/script-tag/generic.keep-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-only/http-rp/cross-origin/http-https/script-tag/generic.no-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-only/http-rp/cross-origin/http-https/script-tag/generic.swap-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-only/http-rp/cross-origin/http-https/xhr-request/generic.keep-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-only/http-rp/cross-origin/http-https/xhr-request/generic.no-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-only/http-rp/cross-origin/http-https/xhr-request/generic.swap-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-only/http-rp/same-origin/http-http/fetch-request/generic.keep-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-only/http-rp/same-origin/http-http/fetch-request/generic.no-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-only/http-rp/same-origin/http-http/fetch-request/generic.swap-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-only/http-rp/same-origin/http-http/iframe-tag/generic.keep-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-only/http-rp/same-origin/http-http/iframe-tag/generic.no-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-only/http-rp/same-origin/http-http/iframe-tag/generic.swap-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-only/http-rp/same-origin/http-http/img-tag/generic.keep-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-only/http-rp/same-origin/http-http/img-tag/generic.no-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-only/http-rp/same-origin/http-http/img-tag/generic.swap-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-only/http-rp/same-origin/http-http/script-tag/generic.keep-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-only/http-rp/same-origin/http-http/script-tag/generic.no-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-only/http-rp/same-origin/http-http/script-tag/generic.swap-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-only/http-rp/same-origin/http-http/xhr-request/generic.keep-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-only/http-rp/same-origin/http-http/xhr-request/generic.no-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-only/http-rp/same-origin/http-http/xhr-request/generic.swap-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-only/http-rp/same-origin/http-https/fetch-request/generic.keep-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-only/http-rp/same-origin/http-https/fetch-request/generic.no-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-only/http-rp/same-origin/http-https/fetch-request/generic.swap-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-only/http-rp/same-origin/http-https/iframe-tag/generic.keep-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-only/http-rp/same-origin/http-https/iframe-tag/generic.no-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-only/http-rp/same-origin/http-https/iframe-tag/generic.swap-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-only/http-rp/same-origin/http-https/img-tag/generic.keep-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-only/http-rp/same-origin/http-https/img-tag/generic.no-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-only/http-rp/same-origin/http-https/img-tag/generic.swap-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-only/http-rp/same-origin/http-https/script-tag/generic.keep-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-only/http-rp/same-origin/http-https/script-tag/generic.no-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-only/http-rp/same-origin/http-https/script-tag/generic.swap-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-only/http-rp/same-origin/http-https/xhr-request/generic.keep-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-only/http-rp/same-origin/http-https/xhr-request/generic.no-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-only/http-rp/same-origin/http-https/xhr-request/generic.swap-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/fetch-request/cross-origin.keep-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/fetch-request/cross-origin.no-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/fetch-request/cross-origin.swap-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/iframe-tag/cross-origin.keep-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/iframe-tag/cross-origin.no-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/iframe-tag/cross-origin.swap-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/img-tag/cross-origin.keep-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/img-tag/cross-origin.no-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/img-tag/cross-origin.swap-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/script-tag/cross-origin.keep-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/script-tag/cross-origin.no-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/script-tag/cross-origin.swap-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/xhr-request/cross-origin.keep-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/xhr-request/cross-origin.no-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/xhr-request/cross-origin.swap-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/fetch-request/cross-origin.keep-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/fetch-request/cross-origin.no-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/fetch-request/cross-origin.swap-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/iframe-tag/cross-origin.keep-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/iframe-tag/cross-origin.no-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/iframe-tag/cross-origin.swap-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/img-tag/cross-origin.keep-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/img-tag/cross-origin.no-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/img-tag/cross-origin.swap-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/script-tag/cross-origin.keep-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/script-tag/cross-origin.no-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/script-tag/cross-origin.swap-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/xhr-request/cross-origin.keep-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/xhr-request/cross-origin.no-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/xhr-request/cross-origin.swap-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/fetch-request/same-origin-insecure.swap-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/iframe-tag/same-origin-insecure.swap-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/img-tag/same-origin-insecure.keep-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/img-tag/same-origin-insecure.no-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/img-tag/same-origin-insecure.swap-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/script-tag/same-origin-insecure.swap-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/xhr-request/same-origin-insecure.swap-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/fetch-request/same-origin-downgrade.keep-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/fetch-request/same-origin-downgrade.no-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/fetch-request/same-origin-downgrade.swap-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/fetch-request/same-origin-insecure.swap-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/fetch-request/same-origin-upgrade.keep-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/fetch-request/same-origin-upgrade.no-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/fetch-request/same-origin-upgrade.swap-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/iframe-tag/same-origin-downgrade.keep-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/iframe-tag/same-origin-downgrade.no-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/iframe-tag/same-origin-downgrade.swap-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/iframe-tag/same-origin-insecure.swap-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/iframe-tag/same-origin-upgrade.keep-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/iframe-tag/same-origin-upgrade.no-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/iframe-tag/same-origin-upgrade.swap-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/img-tag/same-origin-downgrade.keep-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/img-tag/same-origin-downgrade.no-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/img-tag/same-origin-downgrade.swap-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/img-tag/same-origin-insecure.swap-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/img-tag/same-origin-upgrade.keep-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/img-tag/same-origin-upgrade.no-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/img-tag/same-origin-upgrade.swap-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/script-tag/same-origin-downgrade.keep-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/script-tag/same-origin-downgrade.no-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/script-tag/same-origin-downgrade.swap-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/script-tag/same-origin-insecure.swap-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/script-tag/same-origin-upgrade.keep-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/script-tag/same-origin-upgrade.no-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/script-tag/same-origin-upgrade.swap-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/xhr-request/same-origin-downgrade.keep-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/xhr-request/same-origin-downgrade.no-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/xhr-request/same-origin-downgrade.swap-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/xhr-request/same-origin-insecure.swap-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/xhr-request/same-origin-upgrade.keep-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/xhr-request/same-origin-upgrade.no-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/xhr-request/same-origin-upgrade.swap-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/unsafe-url/http-rp/cross-origin/http-http/img-tag/generic.keep-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/unsafe-url/http-rp/cross-origin/http-http/img-tag/generic.no-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/unsafe-url/http-rp/cross-origin/http-http/img-tag/generic.swap-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/unsafe-url/http-rp/cross-origin/http-https/img-tag/generic.keep-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/unsafe-url/http-rp/cross-origin/http-https/img-tag/generic.no-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/unsafe-url/http-rp/cross-origin/http-https/img-tag/generic.swap-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/unsafe-url/http-rp/same-origin/http-http/img-tag/generic.keep-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/unsafe-url/http-rp/same-origin/http-http/img-tag/generic.no-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/unsafe-url/http-rp/same-origin/http-http/img-tag/generic.swap-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/unsafe-url/http-rp/same-origin/http-https/img-tag/generic.keep-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/unsafe-url/http-rp/same-origin/http-https/img-tag/generic.no-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/unsafe-url/http-rp/same-origin/http-https/img-tag/generic.swap-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-http/img-tag/generic.keep-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-http/img-tag/generic.no-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-http/img-tag/generic.swap-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-https/img-tag/generic.keep-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-https/img-tag/generic.no-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-https/img-tag/generic.swap-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/img-tag/generic.keep-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/img-tag/generic.no-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/img-tag/generic.swap-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-https/img-tag/generic.keep-origin-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-https/img-tag/generic.no-redirect.http.html.ini
testing/web-platform/meta/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-https/img-tag/generic.swap-origin-redirect.http.html.ini
testing/web-platform/meta/shadow-dom/HTMLSlotElement-interface.html.ini
testing/web-platform/meta/shadow-dom/scroll-to-the-fragment-in-shadow-tree.html.ini
testing/web-platform/meta/shadow-dom/untriaged/elements-and-dom-objects/extensions-to-event-interface/event-path-001.html.ini
testing/web-platform/meta/shadow-dom/untriaged/events/event-dispatch/test-001.html.ini
testing/web-platform/meta/shadow-dom/untriaged/events/event-retargeting/test-004.html.ini
testing/web-platform/meta/shadow-dom/untriaged/events/events-created-by-users-do-not-stop/test-001.html.ini
testing/web-platform/meta/shadow-dom/untriaged/events/events-created-by-users-do-not-stop/test-002.html.ini
testing/web-platform/meta/shadow-dom/untriaged/events/events-created-by-users-do-not-stop/test-003.html.ini
testing/web-platform/meta/shadow-dom/untriaged/events/events-created-by-users-do-not-stop/test-004.html.ini
testing/web-platform/meta/shadow-dom/untriaged/events/events-created-by-users-do-not-stop/test-005.html.ini
testing/web-platform/meta/shadow-dom/untriaged/events/events-created-by-users-do-not-stop/test-006.html.ini
testing/web-platform/meta/shadow-dom/untriaged/events/events-created-by-users-do-not-stop/test-007.html.ini
testing/web-platform/meta/shadow-dom/untriaged/events/events-created-by-users-do-not-stop/test-008.html.ini
testing/web-platform/meta/shadow-dom/untriaged/events/events-created-by-users-do-not-stop/test-009.html.ini
testing/web-platform/meta/url/a-element-xhtml.xhtml.ini
testing/web-platform/meta/url/a-element.html.ini
testing/web-platform/meta/url/url-constructor.html.ini
testing/web-platform/meta/web-animations/interfaces/Animation/constructor.html.ini
testing/web-platform/meta/websockets/constructor/018.html.ini
--- a/testing/web-platform/meta/FileAPI/blob/Blob-constructor.html.ini
+++ b/testing/web-platform/meta/FileAPI/blob/Blob-constructor.html.ini
@@ -48,8 +48,9 @@
   [Blob with type "─░mage/gif"]
     expected: FAIL
 
   [Blob with type "─▒mage/gif"]
     expected: FAIL
 
   [Blob with type "image/gif\\0"]
     expected: FAIL
+
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/WebCryptoAPI/generateKey/failures_AES-CBC.worker.js.ini
@@ -0,0 +1,3 @@
+[failures_AES-CBC.worker]
+  type: testharness
+  expected: ERROR
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/WebCryptoAPI/generateKey/failures_AES-CTR.worker.js.ini
@@ -0,0 +1,3 @@
+[failures_AES-CTR.worker]
+  type: testharness
+  expected: ERROR
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/WebCryptoAPI/generateKey/failures_AES-GCM.worker.js.ini
@@ -0,0 +1,3 @@
+[failures_AES-GCM.worker]
+  type: testharness
+  expected: ERROR
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/WebCryptoAPI/generateKey/failures_AES-KW.worker.js.ini
@@ -0,0 +1,3 @@
+[failures_AES-KW.worker]
+  type: testharness
+  expected: ERROR
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/WebCryptoAPI/generateKey/failures_ECDH.worker.js.ini
@@ -0,0 +1,3 @@
+[failures_ECDH.worker]
+  type: testharness
+  expected: ERROR
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/WebCryptoAPI/generateKey/failures_ECDSA.worker.js.ini
@@ -0,0 +1,3 @@
+[failures_ECDSA.worker]
+  type: testharness
+  expected: ERROR
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/WebCryptoAPI/generateKey/failures_HMAC.worker.js.ini
@@ -0,0 +1,3 @@
+[failures_HMAC.worker]
+  type: testharness
+  expected: ERROR
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/WebCryptoAPI/generateKey/failures_RSA-OAEP.worker.js.ini
@@ -0,0 +1,3 @@
+[failures_RSA-OAEP.worker]
+  type: testharness
+  expected: ERROR
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/WebCryptoAPI/generateKey/failures_RSA-PSS.worker.js.ini
@@ -0,0 +1,3 @@
+[failures_RSA-PSS.worker]
+  type: testharness
+  expected: ERROR
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/WebCryptoAPI/generateKey/failures_RSASSA-PKCS1-v1_5.worker.js.ini
@@ -0,0 +1,3 @@
+[failures_RSASSA-PKCS1-v1_5.worker]
+  type: testharness
+  expected: ERROR
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/WebCryptoAPI/generateKey/successes_AES-CBC.worker.js.ini
@@ -0,0 +1,3 @@
+[successes_AES-CBC.worker]
+  type: testharness
+  expected: ERROR
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/WebCryptoAPI/generateKey/successes_AES-CTR.worker.js.ini
@@ -0,0 +1,3 @@
+[successes_AES-CTR.worker]
+  type: testharness
+  expected: ERROR
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/WebCryptoAPI/generateKey/successes_AES-GCM.worker.js.ini
@@ -0,0 +1,3 @@
+[successes_AES-GCM.worker]
+  type: testharness
+  expected: ERROR
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/WebCryptoAPI/generateKey/successes_AES-KW.worker.js.ini
@@ -0,0 +1,3 @@
+[successes_AES-KW.worker]
+  type: testharness
+  expected: ERROR
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/WebCryptoAPI/generateKey/successes_ECDH.worker.js.ini
@@ -0,0 +1,3 @@
+[successes_ECDH.worker]
+  type: testharness
+  expected: ERROR
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/WebCryptoAPI/generateKey/successes_ECDSA.worker.js.ini
@@ -0,0 +1,3 @@
+[successes_ECDSA.worker]
+  type: testharness
+  expected: ERROR
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/WebCryptoAPI/generateKey/successes_HMAC.worker.js.ini
@@ -0,0 +1,3 @@
+[successes_HMAC.worker]
+  type: testharness
+  expected: ERROR
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/WebCryptoAPI/generateKey/successes_RSA-OAEP.worker.js.ini
@@ -0,0 +1,3 @@
+[successes_RSA-OAEP.worker]
+  type: testharness
+  expected: ERROR
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/WebCryptoAPI/generateKey/successes_RSA-PSS.worker.js.ini
@@ -0,0 +1,3 @@
+[successes_RSA-PSS.worker]
+  type: testharness
+  expected: ERROR
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/WebCryptoAPI/generateKey/successes_RSASSA-PKCS1-v1_5.worker.js.ini
@@ -0,0 +1,3 @@
+[successes_RSASSA-PKCS1-v1_5.worker]
+  type: testharness
+  expected: ERROR
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/WebCryptoAPI/generateKey/test_failures_AES-CBC.html.ini
@@ -0,0 +1,2216 @@
+[test_failures_AES-CBC.html]
+  type: testharness
+  [Bad algorithm: generateKey(AES, false, [decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey(AES, true, [decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey(AES, RED, [decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey(AES, 7, [decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey(AES, false, [sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey(AES, true, [sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey(AES, RED, [sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey(AES, 7, [sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey(AES, false, [deriveBits, sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey(AES, true, [deriveBits, sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey(AES, RED, [deriveBits, sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey(AES, 7, [deriveBits, sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey(AES, false, [deriveBits, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey(AES, true, [deriveBits, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey(AES, RED, [deriveBits, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey(AES, 7, [deriveBits, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey(AES, false, [sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey(AES, true, [sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey(AES, RED, [sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey(AES, 7, [sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey(AES, false, [deriveBits, sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey(AES, true, [deriveBits, sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey(AES, RED, [deriveBits, sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey(AES, 7, [deriveBits, sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey(AES, false, [deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey(AES, true, [deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey(AES, RED, [deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey(AES, 7, [deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey(AES, false, [\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey(AES, true, [\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey(AES, RED, [\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey(AES, 7, [\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey(AES, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey(AES, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey(AES, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey(AES, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: AES}, false, [decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: AES}, true, [decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: AES}, RED, [decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: AES}, 7, [decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: AES}, false, [sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: AES}, true, [sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: AES}, RED, [sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: AES}, 7, [sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: AES}, false, [deriveBits, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: AES}, true, [deriveBits, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: AES}, RED, [deriveBits, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: AES}, 7, [deriveBits, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: AES}, false, [sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: AES}, true, [sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: AES}, RED, [sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: AES}, 7, [sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: AES}, false, [deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: AES}, true, [deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: AES}, RED, [deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: AES}, 7, [deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: AES}, false, [\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: AES}, true, [\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: AES}, RED, [\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: AES}, 7, [\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES}, false, [sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES}, true, [sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES}, false, [sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES}, true, [sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES}, false, [\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES}, true, [\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES}, RED, [\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES}, 7, [\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CBC}, true, [sign\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CBC}, true, [encrypt, sign\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CBC}, true, [decrypt, encrypt, sign\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, sign\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, sign\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, encrypt, sign\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, sign\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, encrypt, sign\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CBC}, true, [decrypt, sign\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, decrypt, sign\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, sign\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, decrypt, sign\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, sign\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, sign\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, sign\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CBC}, true, [verify\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CBC}, true, [encrypt, verify\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CBC}, true, [decrypt, encrypt, verify\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, verify\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, verify\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, encrypt, verify\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, verify\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, encrypt, verify\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CBC}, true, [decrypt, verify\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, decrypt, verify\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, verify\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, decrypt, verify\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, verify\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, verify\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, verify\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CBC}, true, [deriveKey\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CBC}, true, [encrypt, deriveKey\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CBC}, true, [decrypt, encrypt, deriveKey\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, deriveKey\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, deriveKey\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, encrypt, deriveKey\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, deriveKey\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, encrypt, deriveKey\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CBC}, true, [decrypt, deriveKey\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, decrypt, deriveKey\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, deriveKey\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, decrypt, deriveKey\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, deriveKey\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, deriveKey\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, deriveKey\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CBC}, true, [deriveBits\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CBC}, true, [encrypt, deriveBits\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CBC}, true, [decrypt, encrypt, deriveBits\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, deriveBits\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, deriveBits\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, encrypt, deriveBits\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, deriveBits\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, encrypt, deriveBits\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CBC}, true, [decrypt, deriveBits\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, decrypt, deriveBits\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, deriveBits\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, decrypt, deriveBits\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, deriveBits\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, deriveBits\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, deriveBits\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CBC}, true, [sign\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CBC}, true, [encrypt, sign\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CBC}, true, [decrypt, encrypt, sign\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, sign\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, sign\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, encrypt, sign\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, sign\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, encrypt, sign\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CBC}, true, [decrypt, sign\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, decrypt, sign\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, sign\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, decrypt, sign\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, sign\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, sign\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, sign\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CBC}, true, [verify\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CBC}, true, [encrypt, verify\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CBC}, true, [decrypt, encrypt, verify\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, verify\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, verify\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, encrypt, verify\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, verify\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, encrypt, verify\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CBC}, true, [decrypt, verify\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, decrypt, verify\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, verify\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, decrypt, verify\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, verify\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, verify\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, verify\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CBC}, true, [deriveKey\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CBC}, true, [encrypt, deriveKey\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CBC}, true, [decrypt, encrypt, deriveKey\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, deriveKey\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, deriveKey\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, encrypt, deriveKey\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, deriveKey\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, encrypt, deriveKey\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CBC}, true, [decrypt, deriveKey\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, decrypt, deriveKey\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, deriveKey\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, decrypt, deriveKey\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, deriveKey\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, deriveKey\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, deriveKey\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CBC}, true, [deriveBits\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CBC}, true, [encrypt, deriveBits\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CBC}, true, [decrypt, encrypt, deriveBits\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, deriveBits\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, deriveBits\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, encrypt, deriveBits\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, deriveBits\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, encrypt, deriveBits\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CBC}, true, [decrypt, deriveBits\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, decrypt, deriveBits\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, deriveBits\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, decrypt, deriveBits\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, deriveBits\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, deriveBits\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, deriveBits\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CBC}, true, [sign\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CBC}, true, [encrypt, sign\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CBC}, true, [decrypt, encrypt, sign\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, sign\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, sign\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, encrypt, sign\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, sign\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, encrypt, sign\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CBC}, true, [decrypt, sign\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, decrypt, sign\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, sign\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, decrypt, sign\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, sign\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, sign\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, sign\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CBC}, true, [verify\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CBC}, true, [encrypt, verify\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CBC}, true, [decrypt, encrypt, verify\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, verify\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, verify\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, encrypt, verify\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, verify\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, encrypt, verify\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CBC}, true, [decrypt, verify\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, decrypt, verify\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, verify\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, decrypt, verify\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, verify\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, verify\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, verify\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CBC}, true, [deriveKey\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CBC}, true, [encrypt, deriveKey\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CBC}, true, [decrypt, encrypt, deriveKey\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, deriveKey\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, deriveKey\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, encrypt, deriveKey\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, deriveKey\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, encrypt, deriveKey\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CBC}, true, [decrypt, deriveKey\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, decrypt, deriveKey\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, deriveKey\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, decrypt, deriveKey\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, deriveKey\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, deriveKey\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, deriveKey\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CBC}, true, [deriveBits\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CBC}, true, [encrypt, deriveBits\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CBC}, true, [decrypt, encrypt, deriveBits\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, deriveBits\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, deriveBits\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, encrypt, deriveBits\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, deriveBits\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, encrypt, deriveBits\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CBC}, true, [decrypt, deriveBits\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, decrypt, deriveBits\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, deriveBits\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, decrypt, deriveBits\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, deriveBits\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, deriveBits\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, deriveBits\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [decrypt, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [decrypt, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [wrapKey, decrypt, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [wrapKey, decrypt, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [unwrapKey, decrypt, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [wrapKey, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [wrapKey, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [unwrapKey, wrapKey, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [unwrapKey, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [unwrapKey, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [wrapKey, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [wrapKey, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [unwrapKey, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [unwrapKey, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [wrapKey\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [wrapKey\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [unwrapKey, wrapKey\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [unwrapKey, wrapKey\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [unwrapKey\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [unwrapKey\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [decrypt, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [decrypt, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [wrapKey, decrypt, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [wrapKey, decrypt, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [unwrapKey, decrypt, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [wrapKey, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [wrapKey, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [unwrapKey, wrapKey, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [unwrapKey, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [unwrapKey, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [wrapKey, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [wrapKey, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [unwrapKey, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [unwrapKey, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [wrapKey\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [wrapKey\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [unwrapKey, wrapKey\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [unwrapKey, wrapKey\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [unwrapKey\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [unwrapKey\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [decrypt, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [decrypt, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [wrapKey, decrypt, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [wrapKey, decrypt, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [unwrapKey, decrypt, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [wrapKey, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [wrapKey, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [unwrapKey, wrapKey, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [unwrapKey, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [unwrapKey, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [wrapKey, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [wrapKey, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [unwrapKey, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [unwrapKey, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [wrapKey\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [wrapKey\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [unwrapKey, wrapKey\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [unwrapKey, wrapKey\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [unwrapKey\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [unwrapKey\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [decrypt, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [decrypt, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [wrapKey, decrypt, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [wrapKey, decrypt, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [unwrapKey, decrypt, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [wrapKey, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [wrapKey, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [unwrapKey, wrapKey, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [unwrapKey, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [unwrapKey, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [wrapKey, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [wrapKey, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [unwrapKey, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [unwrapKey, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [wrapKey\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [wrapKey\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [unwrapKey, wrapKey\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [unwrapKey, wrapKey\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [unwrapKey\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [unwrapKey\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [decrypt, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [decrypt, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [wrapKey, decrypt, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [wrapKey, decrypt, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [unwrapKey, decrypt, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [wrapKey, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [wrapKey, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [unwrapKey, wrapKey, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [unwrapKey, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [unwrapKey, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [wrapKey, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [wrapKey, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [unwrapKey, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [unwrapKey, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [wrapKey\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [wrapKey\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [unwrapKey, wrapKey\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [unwrapKey, wrapKey\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [unwrapKey\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [unwrapKey\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [decrypt, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [decrypt, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [wrapKey, decrypt, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [wrapKey, decrypt, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [unwrapKey, decrypt, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [wrapKey, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [wrapKey, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [unwrapKey, wrapKey, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [unwrapKey, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [unwrapKey, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [wrapKey, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [wrapKey, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [unwrapKey, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [unwrapKey, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [wrapKey\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [wrapKey\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [unwrapKey, wrapKey\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [unwrapKey, wrapKey\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [unwrapKey\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [unwrapKey\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey\])]
+    expected: FAIL
+
+  [Empty usages: generateKey({length: 128, name: AES-CBC}, false, [\])]
+    expected: FAIL
+
+  [Empty usages: generateKey({length: 128, name: AES-CBC}, true, [\])]
+    expected: FAIL
+
+  [Empty usages: generateKey({length: 192, name: AES-CBC}, false, [\])]
+    expected: FAIL
+
+  [Empty usages: generateKey({length: 192, name: AES-CBC}, true, [\])]
+    expected: FAIL
+
+  [Empty usages: generateKey({length: 256, name: AES-CBC}, false, [\])]
+    expected: FAIL
+
+  [Empty usages: generateKey({length: 256, name: AES-CBC}, true, [\])]
+    expected: FAIL
+
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/WebCryptoAPI/generateKey/test_failures_AES-CTR.html.ini
@@ -0,0 +1,2216 @@
+[test_failures_AES-CTR.html]
+  type: testharness
+  [Bad algorithm: generateKey(AES, false, [decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey(AES, true, [decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey(AES, RED, [decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey(AES, 7, [decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey(AES, false, [sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey(AES, true, [sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey(AES, RED, [sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey(AES, 7, [sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey(AES, false, [deriveBits, sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey(AES, true, [deriveBits, sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey(AES, RED, [deriveBits, sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey(AES, 7, [deriveBits, sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey(AES, false, [deriveBits, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey(AES, true, [deriveBits, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey(AES, RED, [deriveBits, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey(AES, 7, [deriveBits, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey(AES, false, [sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey(AES, true, [sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey(AES, RED, [sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey(AES, 7, [sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey(AES, false, [deriveBits, sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey(AES, true, [deriveBits, sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey(AES, RED, [deriveBits, sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey(AES, 7, [deriveBits, sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey(AES, false, [deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey(AES, true, [deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey(AES, RED, [deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey(AES, 7, [deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey(AES, false, [\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey(AES, true, [\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey(AES, RED, [\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey(AES, 7, [\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey(AES, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey(AES, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey(AES, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey(AES, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: AES}, false, [decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: AES}, true, [decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: AES}, RED, [decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: AES}, 7, [decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: AES}, false, [sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: AES}, true, [sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: AES}, RED, [sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: AES}, 7, [sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: AES}, false, [deriveBits, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: AES}, true, [deriveBits, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: AES}, RED, [deriveBits, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: AES}, 7, [deriveBits, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: AES}, false, [sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: AES}, true, [sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: AES}, RED, [sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: AES}, 7, [sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: AES}, false, [deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: AES}, true, [deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: AES}, RED, [deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: AES}, 7, [deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: AES}, false, [\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: AES}, true, [\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: AES}, RED, [\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: AES}, 7, [\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES}, false, [sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES}, true, [sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES}, false, [sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES}, true, [sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES}, false, [\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES}, true, [\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES}, RED, [\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES}, 7, [\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CTR}, true, [sign\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CTR}, true, [encrypt, sign\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CTR}, true, [decrypt, encrypt, sign\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, sign\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, sign\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, encrypt, sign\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, sign\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, encrypt, sign\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CTR}, true, [decrypt, sign\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, decrypt, sign\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, sign\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, decrypt, sign\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, sign\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, sign\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, sign\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CTR}, true, [verify\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CTR}, true, [encrypt, verify\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CTR}, true, [decrypt, encrypt, verify\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, verify\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, verify\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, encrypt, verify\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, verify\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, encrypt, verify\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CTR}, true, [decrypt, verify\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, decrypt, verify\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, verify\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, decrypt, verify\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, verify\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, verify\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, verify\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CTR}, true, [deriveKey\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CTR}, true, [encrypt, deriveKey\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CTR}, true, [decrypt, encrypt, deriveKey\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, deriveKey\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, deriveKey\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, encrypt, deriveKey\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, deriveKey\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, encrypt, deriveKey\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CTR}, true, [decrypt, deriveKey\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, decrypt, deriveKey\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, deriveKey\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, decrypt, deriveKey\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, deriveKey\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, deriveKey\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, deriveKey\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CTR}, true, [deriveBits\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CTR}, true, [encrypt, deriveBits\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CTR}, true, [decrypt, encrypt, deriveBits\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, deriveBits\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, deriveBits\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, encrypt, deriveBits\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, deriveBits\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, encrypt, deriveBits\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CTR}, true, [decrypt, deriveBits\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, decrypt, deriveBits\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, deriveBits\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, decrypt, deriveBits\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, deriveBits\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, deriveBits\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, deriveBits\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 128, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CTR}, true, [sign\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CTR}, true, [encrypt, sign\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CTR}, true, [decrypt, encrypt, sign\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, sign\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, sign\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, encrypt, sign\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, sign\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, encrypt, sign\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CTR}, true, [decrypt, sign\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, decrypt, sign\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, sign\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, decrypt, sign\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, sign\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, sign\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, sign\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CTR}, true, [verify\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CTR}, true, [encrypt, verify\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CTR}, true, [decrypt, encrypt, verify\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, verify\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, verify\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, encrypt, verify\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, verify\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, encrypt, verify\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CTR}, true, [decrypt, verify\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, decrypt, verify\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, verify\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, decrypt, verify\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, verify\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, verify\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, verify\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CTR}, true, [deriveKey\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CTR}, true, [encrypt, deriveKey\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CTR}, true, [decrypt, encrypt, deriveKey\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, deriveKey\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, deriveKey\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, encrypt, deriveKey\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, deriveKey\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, encrypt, deriveKey\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CTR}, true, [decrypt, deriveKey\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, decrypt, deriveKey\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, deriveKey\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, decrypt, deriveKey\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, deriveKey\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, deriveKey\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, deriveKey\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CTR}, true, [deriveBits\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CTR}, true, [encrypt, deriveBits\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CTR}, true, [decrypt, encrypt, deriveBits\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, deriveBits\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, deriveBits\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, encrypt, deriveBits\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, deriveBits\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, encrypt, deriveBits\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CTR}, true, [decrypt, deriveBits\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, decrypt, deriveBits\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, deriveBits\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, decrypt, deriveBits\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, deriveBits\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, deriveBits\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, deriveBits\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 192, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CTR}, true, [sign\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CTR}, true, [encrypt, sign\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CTR}, true, [decrypt, encrypt, sign\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, sign\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, sign\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, encrypt, sign\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, sign\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, encrypt, sign\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CTR}, true, [decrypt, sign\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, decrypt, sign\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, sign\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, decrypt, sign\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, sign\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, sign\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, sign\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CTR}, true, [verify\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CTR}, true, [encrypt, verify\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CTR}, true, [decrypt, encrypt, verify\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, verify\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, verify\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, encrypt, verify\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, verify\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, encrypt, verify\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CTR}, true, [decrypt, verify\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, decrypt, verify\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, verify\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, decrypt, verify\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, verify\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, verify\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, verify\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CTR}, true, [deriveKey\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CTR}, true, [encrypt, deriveKey\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CTR}, true, [decrypt, encrypt, deriveKey\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, deriveKey\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, deriveKey\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, encrypt, deriveKey\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, deriveKey\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, encrypt, deriveKey\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CTR}, true, [decrypt, deriveKey\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, decrypt, deriveKey\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, deriveKey\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, decrypt, deriveKey\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, deriveKey\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, deriveKey\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, deriveKey\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CTR}, true, [deriveBits\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CTR}, true, [encrypt, deriveBits\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CTR}, true, [decrypt, encrypt, deriveBits\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, deriveBits\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, deriveBits\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, encrypt, deriveBits\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, deriveBits\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, encrypt, deriveBits\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CTR}, true, [decrypt, deriveBits\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, decrypt, deriveBits\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, deriveBits\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, decrypt, deriveBits\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, deriveBits\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, deriveBits\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, deriveBits\])]
+    expected: FAIL
+
+  [Bad usages: generateKey({length: 256, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [decrypt, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [decrypt, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [wrapKey, decrypt, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [wrapKey, decrypt, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [unwrapKey, decrypt, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [wrapKey, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [wrapKey, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [unwrapKey, wrapKey, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [unwrapKey, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [unwrapKey, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [wrapKey, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [wrapKey, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [unwrapKey, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [unwrapKey, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [wrapKey\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [wrapKey\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [unwrapKey, wrapKey\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [unwrapKey, wrapKey\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [unwrapKey\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [unwrapKey\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [decrypt, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [decrypt, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [wrapKey, decrypt, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [wrapKey, decrypt, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [unwrapKey, decrypt, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [wrapKey, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [wrapKey, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [unwrapKey, wrapKey, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [unwrapKey, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [unwrapKey, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [wrapKey, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [wrapKey, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [unwrapKey, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [unwrapKey, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [wrapKey\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [wrapKey\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [unwrapKey, wrapKey\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [unwrapKey, wrapKey\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [unwrapKey\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [unwrapKey\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [decrypt, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [decrypt, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [wrapKey, decrypt, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [wrapKey, decrypt, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [unwrapKey, decrypt, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [wrapKey, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [wrapKey, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [unwrapKey, wrapKey, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [unwrapKey, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [unwrapKey, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [wrapKey, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [wrapKey, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [unwrapKey, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [unwrapKey, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [wrapKey\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [wrapKey\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [unwrapKey, wrapKey\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [unwrapKey, wrapKey\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [unwrapKey\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [unwrapKey\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [decrypt, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [decrypt, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [wrapKey, decrypt, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [wrapKey, decrypt, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [unwrapKey, decrypt, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [wrapKey, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [wrapKey, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [unwrapKey, wrapKey, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [unwrapKey, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [unwrapKey, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [wrapKey, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [wrapKey, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [unwrapKey, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [unwrapKey, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [wrapKey\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [wrapKey\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [unwrapKey, wrapKey\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [unwrapKey, wrapKey\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [unwrapKey\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [unwrapKey\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [decrypt, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [decrypt, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [wrapKey, decrypt, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [wrapKey, decrypt, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [unwrapKey, decrypt, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [wrapKey, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [wrapKey, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [unwrapKey, wrapKey, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [unwrapKey, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [unwrapKey, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [wrapKey, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [wrapKey, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [unwrapKey, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [unwrapKey, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [wrapKey\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [wrapKey\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [unwrapKey, wrapKey\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [unwrapKey, wrapKey\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [unwrapKey\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [unwrapKey\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [decrypt, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [decrypt, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [wrapKey, decrypt, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [wrapKey, decrypt, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [unwrapKey, decrypt, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [wrapKey, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [wrapKey, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [unwrapKey, wrapKey, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [unwrapKey, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [unwrapKey, encrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [wrapKey, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [wrapKey, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [unwrapKey, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [unwrapKey, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [wrapKey\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [wrapKey\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [unwrapKey, wrapKey\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [unwrapKey, wrapKey\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [unwrapKey\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [unwrapKey\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey\])]
+    expected: FAIL
+
+  [Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey\])]
+    expected: FAIL
+
+  [Empty usages: generateKey({length: 128, name: AES-CTR}, false, [\])]
+    expected: FAIL
+
+  [Empty usages: generateKey({length: 128, name: AES-CTR}, true, [\])]
+    expected: FAIL
+
+  [Empty usages: generateKey({length: 192, name: AES-CTR}, false, [\])]
+    expected: FAIL
+
+  [Empty usages: generateKey({length: 192, name: AES-CTR}, true, [\])]
+    expected: FAIL
+
+  [Empty usages: generateKey({length: 256, name: AES-CTR}, false, [\])]
+    expected: FAIL
+
+  [Empty usages: generateKey({length: 256, name: AES-CTR}, true, [\])]
+    expected: FAIL
+
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/WebCryptoAPI/generateKey/test_failures_AES-GCM.html.ini
@@ -0,0 +1,2216 @@
+[test_failures_AES-GCM.html]
+  type: testharness
+  [Bad algorithm: generateKey(AES, false, [decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey(AES, true, [decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey(AES, RED, [decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey(AES, 7, [decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey(AES, false, [sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey(AES, true, [sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey(AES, RED, [sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey(AES, 7, [sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey(AES, false, [deriveBits, sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey(AES, true, [deriveBits, sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey(AES, RED, [deriveBits, sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey(AES, 7, [deriveBits, sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey(AES, false, [deriveBits, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey(AES, true, [deriveBits, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey(AES, RED, [deriveBits, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey(AES, 7, [deriveBits, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey(AES, false, [sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey(AES, true, [sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey(AES, RED, [sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey(AES, 7, [sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey(AES, false, [deriveBits, sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey(AES, true, [deriveBits, sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey(AES, RED, [deriveBits, sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey(AES, 7, [deriveBits, sign\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey(AES, false, [deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey(AES, true, [deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey(AES, RED, [deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey(AES, 7, [deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey(AES, false, [\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey(AES, true, [\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey(AES, RED, [\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey(AES, 7, [\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey(AES, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey(AES, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey(AES, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey(AES, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: AES}, false, [decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: AES}, true, [decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: AES}, RED, [decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: AES}, 7, [decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: AES}, false, [sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: AES}, true, [sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: AES}, RED, [sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: AES}, 7, [sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign, decrypt\])]
+    expected: FAIL
+
+  [Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign, decrypt\])]