<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[207809] trunk</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/207809">207809</a></dd>
<dt>Author</dt> <dd>jiewen_tan@apple.com</dd>
<dt>Date</dt> <dd>2016-10-24 23:07:04 -0700 (Mon, 24 Oct 2016)</dd>
</dl>

<h3>Log Message</h3>
<pre>Update SubtleCrypto::generateKey to match the latest spec
https://bugs.webkit.org/show_bug.cgi?id=163718
&lt;rdar://problem/28864380&gt;

Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

* WebCryptoAPI/generateKey/test_aes-cbc-expected.txt:
* WebCryptoAPI/generateKey/test_aes-cbc.html:
* WebCryptoAPI/generateKey/test_aes-ctr-expected.txt:
* WebCryptoAPI/generateKey/test_aes-ctr.html:
* WebCryptoAPI/generateKey/test_failures-expected.txt:
* WebCryptoAPI/generateKey/test_failures.html:
* WebCryptoAPI/generateKey/test_failures_AES-CBC-expected.txt:
* WebCryptoAPI/generateKey/test_failures_AES-CBC.html:
* WebCryptoAPI/generateKey/test_failures_AES-CTR-expected.txt:
* WebCryptoAPI/generateKey/test_failures_AES-CTR.html:
* WebCryptoAPI/generateKey/test_failures_AES-GCM-expected.txt:
* WebCryptoAPI/generateKey/test_failures_AES-GCM.html:
* WebCryptoAPI/generateKey/test_failures_AES-KW-expected.txt:
* WebCryptoAPI/generateKey/test_failures_AES-KW.html:
* WebCryptoAPI/generateKey/test_failures_ECDH-expected.txt:
* WebCryptoAPI/generateKey/test_failures_ECDH.html:
* WebCryptoAPI/generateKey/test_failures_ECDSA-expected.txt:
* WebCryptoAPI/generateKey/test_failures_ECDSA.html:
* WebCryptoAPI/generateKey/test_failures_HMAC-expected.txt:
* WebCryptoAPI/generateKey/test_failures_HMAC.html:
* WebCryptoAPI/generateKey/test_failures_RSA-OAEP-expected.txt:
* WebCryptoAPI/generateKey/test_failures_RSA-OAEP.html:
* WebCryptoAPI/generateKey/test_failures_RSA-PSS-expected.txt:
* WebCryptoAPI/generateKey/test_failures_RSA-PSS.html:
* WebCryptoAPI/generateKey/test_failures_RSASSA-PKCS1-v1_5-expected.txt:
* WebCryptoAPI/generateKey/test_failures_RSASSA-PKCS1-v1_5.html:
* WebCryptoAPI/generateKey/test_successes-expected.txt:
* WebCryptoAPI/generateKey/test_successes.html:
* WebCryptoAPI/generateKey/test_successes_AES-CBC-expected.txt:
* WebCryptoAPI/generateKey/test_successes_AES-CBC.html:
* WebCryptoAPI/generateKey/test_successes_AES-CTR-expected.txt:
* WebCryptoAPI/generateKey/test_successes_AES-CTR.html:
* WebCryptoAPI/generateKey/test_successes_AES-GCM-expected.txt:
* WebCryptoAPI/generateKey/test_successes_AES-GCM.html:
* WebCryptoAPI/generateKey/test_successes_AES-KW-expected.txt:
* WebCryptoAPI/generateKey/test_successes_AES-KW.html:
* WebCryptoAPI/generateKey/test_successes_ECDH-expected.txt:
* WebCryptoAPI/generateKey/test_successes_ECDH.html:
* WebCryptoAPI/generateKey/test_successes_ECDSA-expected.txt:
* WebCryptoAPI/generateKey/test_successes_ECDSA.html:
* WebCryptoAPI/generateKey/test_successes_HMAC-expected.txt:
* WebCryptoAPI/generateKey/test_successes_HMAC.html:
* WebCryptoAPI/generateKey/test_successes_RSA-OAEP-expected.txt:
* WebCryptoAPI/generateKey/test_successes_RSA-OAEP.html:
* WebCryptoAPI/generateKey/test_successes_RSA-PSS-expected.txt:
* WebCryptoAPI/generateKey/test_successes_RSA-PSS.html:
* WebCryptoAPI/generateKey/test_successes_RSASSA-PKCS1-v1_5-expected.txt:
* WebCryptoAPI/generateKey/test_successes_RSASSA-PKCS1-v1_5.html:
* WebCryptoAPI/idlharness-expected.txt:

Source/WebCore:

This patch does following few things:
1. It updates the SubtleCrypto::generateKey method to match the latest spec:
   https://www.w3.org/TR/WebCryptoAPI/#SubtleCrypto-method-generateKey.
   It also refers to the latest Editor's Draft at a certain degree:
   https://w3c.github.io/webcrypto/Overview.html#SubtleCrypto-method-generateKey.
2. It implements generateKey operations of following algorithms: AES-CBC, AES-KW,
   HMAC, RSAES-PKCS1-V1_5, RSASSA-PKCS1-V1_5, and RSA-OAEP.
3. It replaces SPECIALIZE_TYPE_TRAITS_CRYPTO_ALGORITHM_PARAMETERS with
SPECIALIZE_TYPE_TRAITS_CRYPTO_ALGORITHM_PARAMETERS_DEPRECATED for deprecated params.
4. It fixes https://bugs.webkit.org/show_bug.cgi?id=129750 as well.

Tests: crypto/subtle/aes-cbc-generate-key-length-128.html
       crypto/subtle/aes-cbc-generate-key-length-192.html
       crypto/subtle/aes-cbc-generate-key-length-256.html
       crypto/subtle/aes-generate-key-malformed-parameters.html
       crypto/subtle/aes-kw-generate-key.html
       crypto/subtle/generate-key-malformed-paramters.html
       crypto/subtle/hmac-generate-key-customized-length.html
       crypto/subtle/hmac-generate-key-hash-object.html
       crypto/subtle/hmac-generate-key-malformed-parameters.html
       crypto/subtle/hmac-generate-key-sha1.html
       crypto/subtle/hmac-generate-key-sha224.html
       crypto/subtle/hmac-generate-key-sha256.html
       crypto/subtle/hmac-generate-key-sha384.html
       crypto/subtle/hmac-generate-key-sha512.html
       crypto/subtle/rsa-generate-key-malformed-parameters.html
       crypto/subtle/rsa-oaep-generate-key.html
       crypto/subtle/rsaes-pkcs1-v1_5-generate-key-extractable.html
       crypto/subtle/rsaes-pkcs1-v1_5-generate-key.html
       crypto/subtle/rsassa-pkcs1-v1_5-generate-key.html
       crypto/webkitSubtle/hmac-generate-key.html:
       crypto/workers/subtle/aes-generate-key.html
       crypto/workers/subtle/hmac-generate-key.html
       crypto/workers/subtle/rsa-generate-key.html

* CMakeLists.txt:
* DerivedSources.make:
* Modules/encryptedmedia/CDMSessionClearKey.cpp:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSSubtleCryptoCustom.cpp: Added.
(WebCore::toHashIdentifier):
(WebCore::normalizeCryptoAlgorithmParameters):
(WebCore::cryptoKeyUsagesFromJSValue):
(WebCore::createAlgorithm):
(WebCore::rejectWithException):
(WebCore::jsSubtleCryptoFunctionGenerateKeyPromise):
(WebCore::JSSubtleCrypto::generateKey):
* bindings/js/JSWebKitSubtleCryptoCustom.cpp:
(WebCore::JSWebKitSubtleCrypto::generateKey):
* crypto/CryptoAlgorithm.cpp:
(WebCore::CryptoAlgorithm::generateKey):
* crypto/CryptoAlgorithm.h:
* crypto/CryptoAlgorithmParameters.h: Added.
(WebCore::CryptoAlgorithmParameters::CryptoAlgorithmParameters):
(WebCore::CryptoAlgorithmParameters::~CryptoAlgorithmParameters):
(WebCore::CryptoAlgorithmParameters::parametersClass):
* crypto/CryptoAlgorithmParameters.idl: Added.
* crypto/CryptoAlgorithmParametersDeprecated.h:
* crypto/CryptoKey.cpp:
(WebCore::CryptoKey::setUsagesBitmap):
* crypto/CryptoKey.h:
* crypto/CryptoKeyPair.idl:
* crypto/SubtleCrypto.idl:
* crypto/algorithms/CryptoAlgorithmAES_CBC.cpp:
(WebCore::CryptoAlgorithmAES_CBC::generateKey):
* crypto/algorithms/CryptoAlgorithmAES_CBC.h:
* crypto/algorithms/CryptoAlgorithmAES_KW.cpp:
(WebCore::CryptoAlgorithmAES_KW::generateKey):
* crypto/algorithms/CryptoAlgorithmAES_KW.h:
* crypto/algorithms/CryptoAlgorithmHMAC.cpp:
(WebCore::CryptoAlgorithmHMAC::generateKey):
* crypto/algorithms/CryptoAlgorithmHMAC.h:
* crypto/algorithms/CryptoAlgorithmRSAES_PKCS1_v1_5.cpp:
(WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::generateKey):
* crypto/algorithms/CryptoAlgorithmRSAES_PKCS1_v1_5.h:
* crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.cpp:
(WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::generateKey):
* crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.h:
* crypto/algorithms/CryptoAlgorithmRSA_OAEP.cpp:
(WebCore::CryptoAlgorithmRSA_OAEP::generateKey):
* crypto/algorithms/CryptoAlgorithmRSA_OAEP.h:
* crypto/gnutls/CryptoKeyRSAGnuTLS.cpp:
(WebCore::CryptoKeyRSA::generatePair):
* crypto/keys/CryptoKeyAES.cpp:
(WebCore::CryptoKeyAES::generate):
* crypto/keys/CryptoKeyHMAC.cpp:
(WebCore::CryptoKeyHMAC::generate):
* crypto/keys/CryptoKeyRSA.h:
* crypto/mac/CryptoKeyRSAMac.cpp:
(WebCore::CryptoKeyRSA::generatePair):
* crypto/parameters/AesKeyGenParams.idl: Added.
* crypto/parameters/CryptoAlgorithmAesCbcParamsDeprecated.h:
* crypto/parameters/CryptoAlgorithmAesKeyGenParams.h: Added.
* crypto/parameters/CryptoAlgorithmAesKeyGenParamsDeprecated.h:
* crypto/parameters/CryptoAlgorithmHmacKeyGenParams.h: Added.
* crypto/parameters/CryptoAlgorithmHmacKeyParamsDeprecated.h:
* crypto/parameters/CryptoAlgorithmHmacParamsDeprecated.h:
* crypto/parameters/CryptoAlgorithmRsaHashedKeyGenParams.h: Added.
* crypto/parameters/CryptoAlgorithmRsaKeyGenParams.h: Added.
(WebCore::CryptoAlgorithmRsaKeyGenParams::arrayToVector):
* crypto/parameters/CryptoAlgorithmRsaKeyGenParamsDeprecated.h:
* crypto/parameters/CryptoAlgorithmRsaKeyParamsWithHashDeprecated.h:
* crypto/parameters/CryptoAlgorithmRsaOaepParamsDeprecated.h:
* crypto/parameters/CryptoAlgorithmRsaSsaParamsDeprecated.h:
* crypto/parameters/HmacKeyGenParams.idl: Added.
* crypto/parameters/RsaHashedKeyGenParams.idl: Added.
* crypto/parameters/RsaKeyGenParams.idl: Added.

LayoutTests:

Besides adding tests for SubtleCrypto::generateKey related stuff and fixing HMAC. This patch also add
shouldReject(_a, _rejectCallback, _resolveCallback, _message) in js-test-pre.js.

* TestExpectations:
* crypto/subtle/aes-cbc-generate-key-length-128-expected.txt: Added.
* crypto/subtle/aes-cbc-generate-key-length-128.html: Added.
* crypto/subtle/aes-cbc-generate-key-length-192-expected.txt: Added.
* crypto/subtle/aes-cbc-generate-key-length-192.html: Added.
* crypto/subtle/aes-cbc-generate-key-length-256-expected.txt: Added.
* crypto/subtle/aes-cbc-generate-key-length-256.html: Added.
* crypto/subtle/aes-generate-key-malformed-parameters-expected.txt: Added.
* crypto/subtle/aes-generate-key-malformed-parameters.html: Added.
* crypto/subtle/aes-kw-generate-key-expected.txt: Added.
* crypto/subtle/aes-kw-generate-key.html: Added.
* crypto/subtle/generate-key-malformed-paramters-expected.txt: Added.
* crypto/subtle/generate-key-malformed-paramters.html: Added.
* crypto/subtle/hmac-generate-key-customized-length-expected.txt: Added.
* crypto/subtle/hmac-generate-key-customized-length.html: Added.
* crypto/subtle/hmac-generate-key-hash-object-expected.txt: Added.
* crypto/subtle/hmac-generate-key-hash-object.html: Added.
* crypto/subtle/hmac-generate-key-malformed-parameters-expected.txt: Added.
* crypto/subtle/hmac-generate-key-malformed-parameters.html: Added.
* crypto/subtle/hmac-generate-key-sha1-expected.txt: Added.
* crypto/subtle/hmac-generate-key-sha1.html: Added.
* crypto/subtle/hmac-generate-key-sha224-expected.txt: Added.
* crypto/subtle/hmac-generate-key-sha224.html: Added.
* crypto/subtle/hmac-generate-key-sha256-expected.txt: Added.
* crypto/subtle/hmac-generate-key-sha256.html: Added.
* crypto/subtle/hmac-generate-key-sha384-expected.txt: Added.
* crypto/subtle/hmac-generate-key-sha384.html: Added.
* crypto/subtle/hmac-generate-key-sha512-expected.txt: Added.
* crypto/subtle/hmac-generate-key-sha512.html: Added.
* crypto/subtle/rsa-generate-key-malformed-parameters-expected.txt: Added.
* crypto/subtle/rsa-generate-key-malformed-parameters.html: Added.
* crypto/subtle/rsa-oaep-generate-key-expected.txt: Added.
* crypto/subtle/rsa-oaep-generate-key.html: Added.
* crypto/subtle/rsaes-pkcs1-v1_5-generate-key-expected.txt: Added.
* crypto/subtle/rsaes-pkcs1-v1_5-generate-key-extractable-expected.txt: Added.
* crypto/subtle/rsaes-pkcs1-v1_5-generate-key-extractable.html: Added.
* crypto/subtle/rsaes-pkcs1-v1_5-generate-key.html: Added.
* crypto/subtle/rsassa-pkcs1-v1_5-generate-key-expected.txt: Added.
* crypto/subtle/rsassa-pkcs1-v1_5-generate-key.html: Added.
* crypto/webkitSubtle/hmac-generate-key-expected.txt:
* crypto/webkitSubtle/hmac-generate-key.html:
* crypto/workers/subtle/aes-generate-key-expected.txt: Added.
* crypto/workers/subtle/aes-generate-key.html: Added.
* crypto/workers/subtle/hmac-generate-key-expected.txt: Added.
* crypto/workers/subtle/hmac-generate-key.html: Added.
* crypto/workers/subtle/resources/aes-generate-key.js: Added.
* crypto/workers/subtle/resources/hmac-generate-key.js: Added.
* crypto/workers/subtle/resources/rsa-generate-key.js: Added.
* crypto/workers/subtle/rsa-generate-key-expected.txt: Added.
* crypto/workers/subtle/rsa-generate-key.html: Added.
* resources/js-test-pre.js:</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsChangeLog">trunk/LayoutTests/ChangeLog</a></li>
<li><a href="#trunkLayoutTestsTestExpectations">trunk/LayoutTests/TestExpectations</a></li>
<li><a href="#trunkLayoutTestscryptowebkitSubtlehmacgeneratekeyexpectedtxt">trunk/LayoutTests/crypto/webkitSubtle/hmac-generate-key-expected.txt</a></li>
<li><a href="#trunkLayoutTestscryptowebkitSubtlehmacgeneratekeyhtml">trunk/LayoutTests/crypto/webkitSubtle/hmac-generate-key.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cChangeLog">trunk/LayoutTests/imported/w3c/ChangeLog</a></li>
<li><a href="#trunkLayoutTestsimportedw3cWebCryptoAPIgenerateKeytest_aescbcexpectedtxt">trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_aes-cbc-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cWebCryptoAPIgenerateKeytest_aescbchtml">trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_aes-cbc.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cWebCryptoAPIgenerateKeytest_aesctrexpectedtxt">trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_aes-ctr-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cWebCryptoAPIgenerateKeytest_aesctrhtml">trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_aes-ctr.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cWebCryptoAPIgenerateKeytest_failuresexpectedtxt">trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_failures-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cWebCryptoAPIgenerateKeytest_failureshtml">trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_failures.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cWebCryptoAPIgenerateKeytest_failures_AESCBCexpectedtxt">trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_failures_AES-CBC-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cWebCryptoAPIgenerateKeytest_failures_AESCBChtml">trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_failures_AES-CBC.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cWebCryptoAPIgenerateKeytest_failures_AESCTRexpectedtxt">trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_failures_AES-CTR-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cWebCryptoAPIgenerateKeytest_failures_AESCTRhtml">trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_failures_AES-CTR.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cWebCryptoAPIgenerateKeytest_failures_AESGCMexpectedtxt">trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_failures_AES-GCM-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cWebCryptoAPIgenerateKeytest_failures_AESGCMhtml">trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_failures_AES-GCM.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cWebCryptoAPIgenerateKeytest_failures_AESKWexpectedtxt">trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_failures_AES-KW-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cWebCryptoAPIgenerateKeytest_failures_AESKWhtml">trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_failures_AES-KW.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cWebCryptoAPIgenerateKeytest_failures_ECDHexpectedtxt">trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_failures_ECDH-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cWebCryptoAPIgenerateKeytest_failures_ECDHhtml">trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_failures_ECDH.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cWebCryptoAPIgenerateKeytest_failures_ECDSAexpectedtxt">trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_failures_ECDSA-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cWebCryptoAPIgenerateKeytest_failures_ECDSAhtml">trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_failures_ECDSA.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cWebCryptoAPIgenerateKeytest_failures_HMACexpectedtxt">trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_failures_HMAC-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cWebCryptoAPIgenerateKeytest_failures_HMAChtml">trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_failures_HMAC.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cWebCryptoAPIgenerateKeytest_failures_RSAOAEPexpectedtxt">trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_failures_RSA-OAEP-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cWebCryptoAPIgenerateKeytest_failures_RSAOAEPhtml">trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_failures_RSA-OAEP.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cWebCryptoAPIgenerateKeytest_failures_RSAPSSexpectedtxt">trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_failures_RSA-PSS-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cWebCryptoAPIgenerateKeytest_failures_RSAPSShtml">trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_failures_RSA-PSS.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cWebCryptoAPIgenerateKeytest_failures_RSASSAPKCS1v1_5expectedtxt">trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_failures_RSASSA-PKCS1-v1_5-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cWebCryptoAPIgenerateKeytest_failures_RSASSAPKCS1v1_5html">trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_failures_RSASSA-PKCS1-v1_5.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cWebCryptoAPIgenerateKeytest_successesexpectedtxt">trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_successes-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cWebCryptoAPIgenerateKeytest_successeshtml">trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_successes.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cWebCryptoAPIgenerateKeytest_successes_AESCBCexpectedtxt">trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_successes_AES-CBC-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cWebCryptoAPIgenerateKeytest_successes_AESCBChtml">trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_successes_AES-CBC.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cWebCryptoAPIgenerateKeytest_successes_AESCTRexpectedtxt">trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_successes_AES-CTR-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cWebCryptoAPIgenerateKeytest_successes_AESCTRhtml">trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_successes_AES-CTR.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cWebCryptoAPIgenerateKeytest_successes_AESGCMexpectedtxt">trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_successes_AES-GCM-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cWebCryptoAPIgenerateKeytest_successes_AESGCMhtml">trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_successes_AES-GCM.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cWebCryptoAPIgenerateKeytest_successes_AESKWexpectedtxt">trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_successes_AES-KW-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cWebCryptoAPIgenerateKeytest_successes_AESKWhtml">trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_successes_AES-KW.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cWebCryptoAPIgenerateKeytest_successes_ECDHexpectedtxt">trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_successes_ECDH-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cWebCryptoAPIgenerateKeytest_successes_ECDHhtml">trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_successes_ECDH.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cWebCryptoAPIgenerateKeytest_successes_ECDSAexpectedtxt">trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_successes_ECDSA-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cWebCryptoAPIgenerateKeytest_successes_ECDSAhtml">trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_successes_ECDSA.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cWebCryptoAPIgenerateKeytest_successes_HMACexpectedtxt">trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_successes_HMAC-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cWebCryptoAPIgenerateKeytest_successes_HMAChtml">trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_successes_HMAC.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cWebCryptoAPIgenerateKeytest_successes_RSAOAEPexpectedtxt">trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_successes_RSA-OAEP-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cWebCryptoAPIgenerateKeytest_successes_RSAOAEPhtml">trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_successes_RSA-OAEP.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cWebCryptoAPIgenerateKeytest_successes_RSAPSSexpectedtxt">trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_successes_RSA-PSS-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cWebCryptoAPIgenerateKeytest_successes_RSAPSShtml">trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_successes_RSA-PSS.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cWebCryptoAPIgenerateKeytest_successes_RSASSAPKCS1v1_5expectedtxt">trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_successes_RSASSA-PKCS1-v1_5-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cWebCryptoAPIgenerateKeytest_successes_RSASSAPKCS1v1_5html">trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_successes_RSASSA-PKCS1-v1_5.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cWebCryptoAPIidlharnessexpectedtxt">trunk/LayoutTests/imported/w3c/WebCryptoAPI/idlharness-expected.txt</a></li>
<li><a href="#trunkLayoutTestsresourcesjstestprejs">trunk/LayoutTests/resources/js-test-pre.js</a></li>
<li><a href="#trunkSourceWebCoreCMakeListstxt">trunk/Source/WebCore/CMakeLists.txt</a></li>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreDerivedSourcesmake">trunk/Source/WebCore/DerivedSources.make</a></li>
<li><a href="#trunkSourceWebCoreModulesencryptedmediaCDMSessionClearKeycpp">trunk/Source/WebCore/Modules/encryptedmedia/CDMSessionClearKey.cpp</a></li>
<li><a href="#trunkSourceWebCoreWebCorexcodeprojprojectpbxproj">trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSWebKitSubtleCryptoCustomcpp">trunk/Source/WebCore/bindings/js/JSWebKitSubtleCryptoCustom.cpp</a></li>
<li><a href="#trunkSourceWebCorecryptoCryptoAlgorithmcpp">trunk/Source/WebCore/crypto/CryptoAlgorithm.cpp</a></li>
<li><a href="#trunkSourceWebCorecryptoCryptoAlgorithmh">trunk/Source/WebCore/crypto/CryptoAlgorithm.h</a></li>
<li><a href="#trunkSourceWebCorecryptoCryptoAlgorithmParametersDeprecatedh">trunk/Source/WebCore/crypto/CryptoAlgorithmParametersDeprecated.h</a></li>
<li><a href="#trunkSourceWebCorecryptoCryptoKeyh">trunk/Source/WebCore/crypto/CryptoKey.h</a></li>
<li><a href="#trunkSourceWebCorecryptoCryptoKeyPairidl">trunk/Source/WebCore/crypto/CryptoKeyPair.idl</a></li>
<li><a href="#trunkSourceWebCorecryptoSubtleCryptoidl">trunk/Source/WebCore/crypto/SubtleCrypto.idl</a></li>
<li><a href="#trunkSourceWebCorecryptoalgorithmsCryptoAlgorithmAES_CBCcpp">trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmAES_CBC.cpp</a></li>
<li><a href="#trunkSourceWebCorecryptoalgorithmsCryptoAlgorithmAES_CBCh">trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmAES_CBC.h</a></li>
<li><a href="#trunkSourceWebCorecryptoalgorithmsCryptoAlgorithmAES_KWcpp">trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmAES_KW.cpp</a></li>
<li><a href="#trunkSourceWebCorecryptoalgorithmsCryptoAlgorithmAES_KWh">trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmAES_KW.h</a></li>
<li><a href="#trunkSourceWebCorecryptoalgorithmsCryptoAlgorithmHMACcpp">trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmHMAC.cpp</a></li>
<li><a href="#trunkSourceWebCorecryptoalgorithmsCryptoAlgorithmHMACh">trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmHMAC.h</a></li>
<li><a href="#trunkSourceWebCorecryptoalgorithmsCryptoAlgorithmRSAES_PKCS1_v1_5cpp">trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmRSAES_PKCS1_v1_5.cpp</a></li>
<li><a href="#trunkSourceWebCorecryptoalgorithmsCryptoAlgorithmRSAES_PKCS1_v1_5h">trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmRSAES_PKCS1_v1_5.h</a></li>
<li><a href="#trunkSourceWebCorecryptoalgorithmsCryptoAlgorithmRSASSA_PKCS1_v1_5cpp">trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.cpp</a></li>
<li><a href="#trunkSourceWebCorecryptoalgorithmsCryptoAlgorithmRSASSA_PKCS1_v1_5h">trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.h</a></li>
<li><a href="#trunkSourceWebCorecryptoalgorithmsCryptoAlgorithmRSA_OAEPcpp">trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmRSA_OAEP.cpp</a></li>
<li><a href="#trunkSourceWebCorecryptoalgorithmsCryptoAlgorithmRSA_OAEPh">trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmRSA_OAEP.h</a></li>
<li><a href="#trunkSourceWebCorecryptognutlsCryptoKeyRSAGnuTLScpp">trunk/Source/WebCore/crypto/gnutls/CryptoKeyRSAGnuTLS.cpp</a></li>
<li><a href="#trunkSourceWebCorecryptokeysCryptoKeyAEScpp">trunk/Source/WebCore/crypto/keys/CryptoKeyAES.cpp</a></li>
<li><a href="#trunkSourceWebCorecryptokeysCryptoKeyHMACcpp">trunk/Source/WebCore/crypto/keys/CryptoKeyHMAC.cpp</a></li>
<li><a href="#trunkSourceWebCorecryptokeysCryptoKeyRSAh">trunk/Source/WebCore/crypto/keys/CryptoKeyRSA.h</a></li>
<li><a href="#trunkSourceWebCorecryptomacCryptoKeyRSAMaccpp">trunk/Source/WebCore/crypto/mac/CryptoKeyRSAMac.cpp</a></li>
<li><a href="#trunkSourceWebCorecryptoparametersCryptoAlgorithmAesCbcParamsDeprecatedh">trunk/Source/WebCore/crypto/parameters/CryptoAlgorithmAesCbcParamsDeprecated.h</a></li>
<li><a href="#trunkSourceWebCorecryptoparametersCryptoAlgorithmAesKeyGenParamsDeprecatedh">trunk/Source/WebCore/crypto/parameters/CryptoAlgorithmAesKeyGenParamsDeprecated.h</a></li>
<li><a href="#trunkSourceWebCorecryptoparametersCryptoAlgorithmHmacKeyParamsDeprecatedh">trunk/Source/WebCore/crypto/parameters/CryptoAlgorithmHmacKeyParamsDeprecated.h</a></li>
<li><a href="#trunkSourceWebCorecryptoparametersCryptoAlgorithmHmacParamsDeprecatedh">trunk/Source/WebCore/crypto/parameters/CryptoAlgorithmHmacParamsDeprecated.h</a></li>
<li><a href="#trunkSourceWebCorecryptoparametersCryptoAlgorithmRsaKeyGenParamsDeprecatedh">trunk/Source/WebCore/crypto/parameters/CryptoAlgorithmRsaKeyGenParamsDeprecated.h</a></li>
<li><a href="#trunkSourceWebCorecryptoparametersCryptoAlgorithmRsaKeyParamsWithHashDeprecatedh">trunk/Source/WebCore/crypto/parameters/CryptoAlgorithmRsaKeyParamsWithHashDeprecated.h</a></li>
<li><a href="#trunkSourceWebCorecryptoparametersCryptoAlgorithmRsaOaepParamsDeprecatedh">trunk/Source/WebCore/crypto/parameters/CryptoAlgorithmRsaOaepParamsDeprecated.h</a></li>
<li><a href="#trunkSourceWebCorecryptoparametersCryptoAlgorithmRsaSsaParamsDeprecatedh">trunk/Source/WebCore/crypto/parameters/CryptoAlgorithmRsaSsaParamsDeprecated.h</a></li>
</ul>

<h3>Added Paths</h3>
<ul>
<li><a href="#trunkLayoutTestscryptosubtleaescbcgeneratekeylength128expectedtxt">trunk/LayoutTests/crypto/subtle/aes-cbc-generate-key-length-128-expected.txt</a></li>
<li><a href="#trunkLayoutTestscryptosubtleaescbcgeneratekeylength128html">trunk/LayoutTests/crypto/subtle/aes-cbc-generate-key-length-128.html</a></li>
<li><a href="#trunkLayoutTestscryptosubtleaescbcgeneratekeylength192expectedtxt">trunk/LayoutTests/crypto/subtle/aes-cbc-generate-key-length-192-expected.txt</a></li>
<li><a href="#trunkLayoutTestscryptosubtleaescbcgeneratekeylength192html">trunk/LayoutTests/crypto/subtle/aes-cbc-generate-key-length-192.html</a></li>
<li><a href="#trunkLayoutTestscryptosubtleaescbcgeneratekeylength256expectedtxt">trunk/LayoutTests/crypto/subtle/aes-cbc-generate-key-length-256-expected.txt</a></li>
<li><a href="#trunkLayoutTestscryptosubtleaescbcgeneratekeylength256html">trunk/LayoutTests/crypto/subtle/aes-cbc-generate-key-length-256.html</a></li>
<li><a href="#trunkLayoutTestscryptosubtleaesgeneratekeymalformedparametersexpectedtxt">trunk/LayoutTests/crypto/subtle/aes-generate-key-malformed-parameters-expected.txt</a></li>
<li><a href="#trunkLayoutTestscryptosubtleaesgeneratekeymalformedparametershtml">trunk/LayoutTests/crypto/subtle/aes-generate-key-malformed-parameters.html</a></li>
<li><a href="#trunkLayoutTestscryptosubtleaeskwgeneratekeyexpectedtxt">trunk/LayoutTests/crypto/subtle/aes-kw-generate-key-expected.txt</a></li>
<li><a href="#trunkLayoutTestscryptosubtleaeskwgeneratekeyhtml">trunk/LayoutTests/crypto/subtle/aes-kw-generate-key.html</a></li>
<li><a href="#trunkLayoutTestscryptosubtlegeneratekeymalformedparamtersexpectedtxt">trunk/LayoutTests/crypto/subtle/generate-key-malformed-paramters-expected.txt</a></li>
<li><a href="#trunkLayoutTestscryptosubtlegeneratekeymalformedparamtershtml">trunk/LayoutTests/crypto/subtle/generate-key-malformed-paramters.html</a></li>
<li><a href="#trunkLayoutTestscryptosubtlehmacgeneratekeycustomizedlengthexpectedtxt">trunk/LayoutTests/crypto/subtle/hmac-generate-key-customized-length-expected.txt</a></li>
<li><a href="#trunkLayoutTestscryptosubtlehmacgeneratekeycustomizedlengthhtml">trunk/LayoutTests/crypto/subtle/hmac-generate-key-customized-length.html</a></li>
<li><a href="#trunkLayoutTestscryptosubtlehmacgeneratekeyhashobjectexpectedtxt">trunk/LayoutTests/crypto/subtle/hmac-generate-key-hash-object-expected.txt</a></li>
<li><a href="#trunkLayoutTestscryptosubtlehmacgeneratekeyhashobjecthtml">trunk/LayoutTests/crypto/subtle/hmac-generate-key-hash-object.html</a></li>
<li><a href="#trunkLayoutTestscryptosubtlehmacgeneratekeymalformedparametersexpectedtxt">trunk/LayoutTests/crypto/subtle/hmac-generate-key-malformed-parameters-expected.txt</a></li>
<li><a href="#trunkLayoutTestscryptosubtlehmacgeneratekeymalformedparametershtml">trunk/LayoutTests/crypto/subtle/hmac-generate-key-malformed-parameters.html</a></li>
<li><a href="#trunkLayoutTestscryptosubtlehmacgeneratekeysha1expectedtxt">trunk/LayoutTests/crypto/subtle/hmac-generate-key-sha1-expected.txt</a></li>
<li><a href="#trunkLayoutTestscryptosubtlehmacgeneratekeysha1html">trunk/LayoutTests/crypto/subtle/hmac-generate-key-sha1.html</a></li>
<li><a href="#trunkLayoutTestscryptosubtlehmacgeneratekeysha224expectedtxt">trunk/LayoutTests/crypto/subtle/hmac-generate-key-sha224-expected.txt</a></li>
<li><a href="#trunkLayoutTestscryptosubtlehmacgeneratekeysha224html">trunk/LayoutTests/crypto/subtle/hmac-generate-key-sha224.html</a></li>
<li><a href="#trunkLayoutTestscryptosubtlehmacgeneratekeysha256expectedtxt">trunk/LayoutTests/crypto/subtle/hmac-generate-key-sha256-expected.txt</a></li>
<li><a href="#trunkLayoutTestscryptosubtlehmacgeneratekeysha256html">trunk/LayoutTests/crypto/subtle/hmac-generate-key-sha256.html</a></li>
<li><a href="#trunkLayoutTestscryptosubtlehmacgeneratekeysha384expectedtxt">trunk/LayoutTests/crypto/subtle/hmac-generate-key-sha384-expected.txt</a></li>
<li><a href="#trunkLayoutTestscryptosubtlehmacgeneratekeysha384html">trunk/LayoutTests/crypto/subtle/hmac-generate-key-sha384.html</a></li>
<li><a href="#trunkLayoutTestscryptosubtlehmacgeneratekeysha512expectedtxt">trunk/LayoutTests/crypto/subtle/hmac-generate-key-sha512-expected.txt</a></li>
<li><a href="#trunkLayoutTestscryptosubtlehmacgeneratekeysha512html">trunk/LayoutTests/crypto/subtle/hmac-generate-key-sha512.html</a></li>
<li><a href="#trunkLayoutTestscryptosubtlersageneratekeymalformedparametersexpectedtxt">trunk/LayoutTests/crypto/subtle/rsa-generate-key-malformed-parameters-expected.txt</a></li>
<li><a href="#trunkLayoutTestscryptosubtlersageneratekeymalformedparametershtml">trunk/LayoutTests/crypto/subtle/rsa-generate-key-malformed-parameters.html</a></li>
<li><a href="#trunkLayoutTestscryptosubtlersaoaepgeneratekeyexpectedtxt">trunk/LayoutTests/crypto/subtle/rsa-oaep-generate-key-expected.txt</a></li>
<li><a href="#trunkLayoutTestscryptosubtlersaoaepgeneratekeyhtml">trunk/LayoutTests/crypto/subtle/rsa-oaep-generate-key.html</a></li>
<li><a href="#trunkLayoutTestscryptosubtlersaespkcs1v1_5generatekeyexpectedtxt">trunk/LayoutTests/crypto/subtle/rsaes-pkcs1-v1_5-generate-key-expected.txt</a></li>
<li><a href="#trunkLayoutTestscryptosubtlersaespkcs1v1_5generatekeyextractableexpectedtxt">trunk/LayoutTests/crypto/subtle/rsaes-pkcs1-v1_5-generate-key-extractable-expected.txt</a></li>
<li><a href="#trunkLayoutTestscryptosubtlersaespkcs1v1_5generatekeyextractablehtml">trunk/LayoutTests/crypto/subtle/rsaes-pkcs1-v1_5-generate-key-extractable.html</a></li>
<li><a href="#trunkLayoutTestscryptosubtlersaespkcs1v1_5generatekeyhtml">trunk/LayoutTests/crypto/subtle/rsaes-pkcs1-v1_5-generate-key.html</a></li>
<li><a href="#trunkLayoutTestscryptosubtlersassapkcs1v1_5generatekeyexpectedtxt">trunk/LayoutTests/crypto/subtle/rsassa-pkcs1-v1_5-generate-key-expected.txt</a></li>
<li><a href="#trunkLayoutTestscryptosubtlersassapkcs1v1_5generatekeyhtml">trunk/LayoutTests/crypto/subtle/rsassa-pkcs1-v1_5-generate-key.html</a></li>
<li><a href="#trunkLayoutTestscryptoworkerssubtleaesgeneratekeyexpectedtxt">trunk/LayoutTests/crypto/workers/subtle/aes-generate-key-expected.txt</a></li>
<li><a href="#trunkLayoutTestscryptoworkerssubtleaesgeneratekeyhtml">trunk/LayoutTests/crypto/workers/subtle/aes-generate-key.html</a></li>
<li><a href="#trunkLayoutTestscryptoworkerssubtlehmacgeneratekeyexpectedtxt">trunk/LayoutTests/crypto/workers/subtle/hmac-generate-key-expected.txt</a></li>
<li><a href="#trunkLayoutTestscryptoworkerssubtlehmacgeneratekeyhtml">trunk/LayoutTests/crypto/workers/subtle/hmac-generate-key.html</a></li>
<li><a href="#trunkLayoutTestscryptoworkerssubtleresourcesaesgeneratekeyjs">trunk/LayoutTests/crypto/workers/subtle/resources/aes-generate-key.js</a></li>
<li><a href="#trunkLayoutTestscryptoworkerssubtleresourceshmacgeneratekeyjs">trunk/LayoutTests/crypto/workers/subtle/resources/hmac-generate-key.js</a></li>
<li><a href="#trunkLayoutTestscryptoworkerssubtleresourcesrsageneratekeyjs">trunk/LayoutTests/crypto/workers/subtle/resources/rsa-generate-key.js</a></li>
<li><a href="#trunkLayoutTestscryptoworkerssubtlersageneratekeyexpectedtxt">trunk/LayoutTests/crypto/workers/subtle/rsa-generate-key-expected.txt</a></li>
<li><a href="#trunkLayoutTestscryptoworkerssubtlersageneratekeyhtml">trunk/LayoutTests/crypto/workers/subtle/rsa-generate-key.html</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSSubtleCryptoCustomcpp">trunk/Source/WebCore/bindings/js/JSSubtleCryptoCustom.cpp</a></li>
<li><a href="#trunkSourceWebCorecryptoCryptoAlgorithmParametersh">trunk/Source/WebCore/crypto/CryptoAlgorithmParameters.h</a></li>
<li><a href="#trunkSourceWebCorecryptoCryptoAlgorithmParametersidl">trunk/Source/WebCore/crypto/CryptoAlgorithmParameters.idl</a></li>
<li><a href="#trunkSourceWebCorecryptoparametersAesKeyGenParamsidl">trunk/Source/WebCore/crypto/parameters/AesKeyGenParams.idl</a></li>
<li><a href="#trunkSourceWebCorecryptoparametersCryptoAlgorithmAesKeyGenParamsh">trunk/Source/WebCore/crypto/parameters/CryptoAlgorithmAesKeyGenParams.h</a></li>
<li><a href="#trunkSourceWebCorecryptoparametersCryptoAlgorithmHmacKeyGenParamsh">trunk/Source/WebCore/crypto/parameters/CryptoAlgorithmHmacKeyGenParams.h</a></li>
<li><a href="#trunkSourceWebCorecryptoparametersCryptoAlgorithmRsaHashedKeyGenParamsh">trunk/Source/WebCore/crypto/parameters/CryptoAlgorithmRsaHashedKeyGenParams.h</a></li>
<li><a href="#trunkSourceWebCorecryptoparametersCryptoAlgorithmRsaKeyGenParamsh">trunk/Source/WebCore/crypto/parameters/CryptoAlgorithmRsaKeyGenParams.h</a></li>
<li><a href="#trunkSourceWebCorecryptoparametersHmacKeyGenParamsidl">trunk/Source/WebCore/crypto/parameters/HmacKeyGenParams.idl</a></li>
<li><a href="#trunkSourceWebCorecryptoparametersRsaHashedKeyGenParamsidl">trunk/Source/WebCore/crypto/parameters/RsaHashedKeyGenParams.idl</a></li>
<li><a href="#trunkSourceWebCorecryptoparametersRsaKeyGenParamsidl">trunk/Source/WebCore/crypto/parameters/RsaKeyGenParams.idl</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (207808 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog        2016-10-25 05:26:35 UTC (rev 207808)
+++ trunk/LayoutTests/ChangeLog        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -1,3 +1,66 @@
</span><ins>+2016-10-24  Jiewen Tan  &lt;jiewen_tan@apple.com&gt;
+
+        Update SubtleCrypto::generateKey to match the latest spec
+        https://bugs.webkit.org/show_bug.cgi?id=163718
+        &lt;rdar://problem/28864380&gt;
+
+        Reviewed by Chris Dumez.
+
+        Besides adding tests for SubtleCrypto::generateKey related stuff and fixing HMAC. This patch also add
+        shouldReject(_a, _rejectCallback, _resolveCallback, _message) in js-test-pre.js.
+
+        * TestExpectations:
+        * crypto/subtle/aes-cbc-generate-key-length-128-expected.txt: Added.
+        * crypto/subtle/aes-cbc-generate-key-length-128.html: Added.
+        * crypto/subtle/aes-cbc-generate-key-length-192-expected.txt: Added.
+        * crypto/subtle/aes-cbc-generate-key-length-192.html: Added.
+        * crypto/subtle/aes-cbc-generate-key-length-256-expected.txt: Added.
+        * crypto/subtle/aes-cbc-generate-key-length-256.html: Added.
+        * crypto/subtle/aes-generate-key-malformed-parameters-expected.txt: Added.
+        * crypto/subtle/aes-generate-key-malformed-parameters.html: Added.
+        * crypto/subtle/aes-kw-generate-key-expected.txt: Added.
+        * crypto/subtle/aes-kw-generate-key.html: Added.
+        * crypto/subtle/generate-key-malformed-paramters-expected.txt: Added.
+        * crypto/subtle/generate-key-malformed-paramters.html: Added.
+        * crypto/subtle/hmac-generate-key-customized-length-expected.txt: Added.
+        * crypto/subtle/hmac-generate-key-customized-length.html: Added.
+        * crypto/subtle/hmac-generate-key-hash-object-expected.txt: Added.
+        * crypto/subtle/hmac-generate-key-hash-object.html: Added.
+        * crypto/subtle/hmac-generate-key-malformed-parameters-expected.txt: Added.
+        * crypto/subtle/hmac-generate-key-malformed-parameters.html: Added.
+        * crypto/subtle/hmac-generate-key-sha1-expected.txt: Added.
+        * crypto/subtle/hmac-generate-key-sha1.html: Added.
+        * crypto/subtle/hmac-generate-key-sha224-expected.txt: Added.
+        * crypto/subtle/hmac-generate-key-sha224.html: Added.
+        * crypto/subtle/hmac-generate-key-sha256-expected.txt: Added.
+        * crypto/subtle/hmac-generate-key-sha256.html: Added.
+        * crypto/subtle/hmac-generate-key-sha384-expected.txt: Added.
+        * crypto/subtle/hmac-generate-key-sha384.html: Added.
+        * crypto/subtle/hmac-generate-key-sha512-expected.txt: Added.
+        * crypto/subtle/hmac-generate-key-sha512.html: Added.
+        * crypto/subtle/rsa-generate-key-malformed-parameters-expected.txt: Added.
+        * crypto/subtle/rsa-generate-key-malformed-parameters.html: Added.
+        * crypto/subtle/rsa-oaep-generate-key-expected.txt: Added.
+        * crypto/subtle/rsa-oaep-generate-key.html: Added.
+        * crypto/subtle/rsaes-pkcs1-v1_5-generate-key-expected.txt: Added.
+        * crypto/subtle/rsaes-pkcs1-v1_5-generate-key-extractable-expected.txt: Added.
+        * crypto/subtle/rsaes-pkcs1-v1_5-generate-key-extractable.html: Added.
+        * crypto/subtle/rsaes-pkcs1-v1_5-generate-key.html: Added.
+        * crypto/subtle/rsassa-pkcs1-v1_5-generate-key-expected.txt: Added.
+        * crypto/subtle/rsassa-pkcs1-v1_5-generate-key.html: Added.
+        * crypto/webkitSubtle/hmac-generate-key-expected.txt:
+        * crypto/webkitSubtle/hmac-generate-key.html:
+        * crypto/workers/subtle/aes-generate-key-expected.txt: Added.
+        * crypto/workers/subtle/aes-generate-key.html: Added.
+        * crypto/workers/subtle/hmac-generate-key-expected.txt: Added.
+        * crypto/workers/subtle/hmac-generate-key.html: Added.
+        * crypto/workers/subtle/resources/aes-generate-key.js: Added.
+        * crypto/workers/subtle/resources/hmac-generate-key.js: Added.
+        * crypto/workers/subtle/resources/rsa-generate-key.js: Added.
+        * crypto/workers/subtle/rsa-generate-key-expected.txt: Added.
+        * crypto/workers/subtle/rsa-generate-key.html: Added.
+        * resources/js-test-pre.js:
+
</ins><span class="cx"> 2016-10-24  Chris Dumez  &lt;cdumez@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         IDBDatabase.createObjectStore() should take a IDBObjectStoreParameters dictionary in parameter
</span></span></pre></div>
<a id="trunkLayoutTestsTestExpectations"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/TestExpectations (207808 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/TestExpectations        2016-10-25 05:26:35 UTC (rev 207808)
+++ trunk/LayoutTests/TestExpectations        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -927,30 +927,9 @@
</span><span class="cx"> imported/w3c/WebCryptoAPI/encrypt_decrypt/test_aes_ctr.html [ Skip ]
</span><span class="cx"> imported/w3c/WebCryptoAPI/encrypt_decrypt/test_aes_gcm.html [ Skip ]
</span><span class="cx"> imported/w3c/WebCryptoAPI/encrypt_decrypt/test_rsa_oaep.html [ Skip ]
</span><del>-imported/w3c/WebCryptoAPI/generateKey/test_aes-cbc.html [ Skip ]
-imported/w3c/WebCryptoAPI/generateKey/test_aes-ctr.html [ Skip ]
-imported/w3c/WebCryptoAPI/generateKey/test_failures_AES-CBC.html [ Skip ]
-imported/w3c/WebCryptoAPI/generateKey/test_failures_AES-CTR.html [ Skip ]
-imported/w3c/WebCryptoAPI/generateKey/test_failures_AES-GCM.html [ Skip ]
-imported/w3c/WebCryptoAPI/generateKey/test_failures_AES-KW.html [ Skip ]
-imported/w3c/WebCryptoAPI/generateKey/test_failures_ECDH.html [ Skip ]
-imported/w3c/WebCryptoAPI/generateKey/test_failures_ECDSA.html [ Skip ]
-imported/w3c/WebCryptoAPI/generateKey/test_failures_HMAC.html [ Skip ]
-imported/w3c/WebCryptoAPI/generateKey/test_failures_RSA-OAEP.html [ Skip ]
-imported/w3c/WebCryptoAPI/generateKey/test_failures_RSA-PSS.html [ Skip ]
-imported/w3c/WebCryptoAPI/generateKey/test_failures_RSASSA-PKCS1-v1_5.html [ Skip ]
-imported/w3c/WebCryptoAPI/generateKey/test_failures.html [ Skip ]
-imported/w3c/WebCryptoAPI/generateKey/test_successes_AES-CBC.html [ Skip ]
-imported/w3c/WebCryptoAPI/generateKey/test_successes_AES-CTR.html [ Skip ]
-imported/w3c/WebCryptoAPI/generateKey/test_successes_AES-GCM.html [ Skip ]
-imported/w3c/WebCryptoAPI/generateKey/test_successes_AES-KW.html [ Skip ]
-imported/w3c/WebCryptoAPI/generateKey/test_successes_ECDH.html [ Skip ]
-imported/w3c/WebCryptoAPI/generateKey/test_successes_ECDSA.html [ Skip ]
-imported/w3c/WebCryptoAPI/generateKey/test_successes_HMAC.html [ Skip ]
-imported/w3c/WebCryptoAPI/generateKey/test_successes_RSA-OAEP.html [ Skip ]
-imported/w3c/WebCryptoAPI/generateKey/test_successes_RSA-PSS.html [ Skip ]
-imported/w3c/WebCryptoAPI/generateKey/test_successes_RSASSA-PKCS1-v1_5.html [ Skip ]
-imported/w3c/WebCryptoAPI/generateKey/test_successes.html [ Skip ]
</del><ins>+# Take too long to complete, need to scale down.
+imported/w3c/WebCryptoAPI/generateKey/test_successes_RSA-OAEP.html [ Slow ]
+imported/w3c/WebCryptoAPI/generateKey/test_successes.html [ Slow ]
</ins><span class="cx"> 
</span><span class="cx"> editing/deleting/delete-emoji.html [ Slow ]
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestscryptosubtleaescbcgeneratekeylength128expectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/crypto/subtle/aes-cbc-generate-key-length-128-expected.txt (0 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/subtle/aes-cbc-generate-key-length-128-expected.txt                                (rev 0)
+++ trunk/LayoutTests/crypto/subtle/aes-cbc-generate-key-length-128-expected.txt        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -0,0 +1,15 @@
</span><ins>+Test generating an AES key with length 128 using AES-CBC algorithm.
+
+On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
+
+
+Generating a key...
+PASS key.type is 'secret'
+PASS key.extractable is true
+PASS key.algorithm.name is 'AES-CBC'
+PASS key.algorithm.length is 128
+PASS key.usages is ['decrypt', 'encrypt', 'unwrapKey', 'wrapKey']
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
</ins></span></pre></div>
<a id="trunkLayoutTestscryptosubtleaescbcgeneratekeylength128html"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/crypto/subtle/aes-cbc-generate-key-length-128.html (0 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/subtle/aes-cbc-generate-key-length-128.html                                (rev 0)
+++ trunk/LayoutTests/crypto/subtle/aes-cbc-generate-key-length-128.html        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -0,0 +1,32 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;html&gt;
+&lt;head&gt;
+&lt;script src=&quot;../../resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../resources/common.js&quot;&gt;&lt;/script&gt;
+&lt;/head&gt;
+&lt;body&gt;
+&lt;p id=&quot;description&quot;&gt;&lt;/p&gt;
+&lt;div id=&quot;console&quot;&gt;&lt;/div&gt;
+
+&lt;script&gt;
+description(&quot;Test generating an AES key with length 128 using AES-CBC algorithm.&quot;);
+
+jsTestIsAsync = true;
+
+debug(&quot;Generating a key...&quot;);
+crypto.subtle.generateKey({name: &quot;aes-cbc&quot;, length: 128}, true, [&quot;decrypt&quot;, &quot;encrypt&quot;, &quot;unwrapKey&quot;, &quot;wrapKey&quot;]).then(function(result) {
+    key = result;
+
+    shouldBe(&quot;key.type&quot;, &quot;'secret'&quot;);
+    shouldBe(&quot;key.extractable&quot;, &quot;true&quot;);
+    shouldBe(&quot;key.algorithm.name&quot;, &quot;'AES-CBC'&quot;);
+    shouldBe(&quot;key.algorithm.length&quot;, &quot;128&quot;);
+    shouldBe(&quot;key.usages&quot;, &quot;['decrypt', 'encrypt', 'unwrapKey', 'wrapKey']&quot;);
+
+    finishJSTest();
+});
+&lt;/script&gt;
+
+&lt;script src=&quot;../../resources/js-test-post.js&quot;&gt;&lt;/script&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestscryptosubtleaescbcgeneratekeylength192expectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/crypto/subtle/aes-cbc-generate-key-length-192-expected.txt (0 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/subtle/aes-cbc-generate-key-length-192-expected.txt                                (rev 0)
+++ trunk/LayoutTests/crypto/subtle/aes-cbc-generate-key-length-192-expected.txt        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -0,0 +1,15 @@
</span><ins>+Test generating an AES key with length 192 using AES-CBC algorithm.
+
+On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
+
+
+Generating a key...
+PASS key.type is 'secret'
+PASS key.extractable is true
+PASS key.algorithm.name is 'AES-CBC'
+PASS key.algorithm.length is 192
+PASS key.usages is ['decrypt', 'encrypt', 'unwrapKey', 'wrapKey']
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
</ins></span></pre></div>
<a id="trunkLayoutTestscryptosubtleaescbcgeneratekeylength192html"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/crypto/subtle/aes-cbc-generate-key-length-192.html (0 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/subtle/aes-cbc-generate-key-length-192.html                                (rev 0)
+++ trunk/LayoutTests/crypto/subtle/aes-cbc-generate-key-length-192.html        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -0,0 +1,32 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;html&gt;
+&lt;head&gt;
+&lt;script src=&quot;../../resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../resources/common.js&quot;&gt;&lt;/script&gt;
+&lt;/head&gt;
+&lt;body&gt;
+&lt;p id=&quot;description&quot;&gt;&lt;/p&gt;
+&lt;div id=&quot;console&quot;&gt;&lt;/div&gt;
+
+&lt;script&gt;
+description(&quot;Test generating an AES key with length 192 using AES-CBC algorithm.&quot;);
+
+jsTestIsAsync = true;
+
+debug(&quot;Generating a key...&quot;);
+crypto.subtle.generateKey({name: &quot;aes-cbc&quot;, length: 192}, true, [&quot;decrypt&quot;, &quot;encrypt&quot;, &quot;unwrapKey&quot;, &quot;wrapKey&quot;]).then(function(result) {
+    key = result;
+
+    shouldBe(&quot;key.type&quot;, &quot;'secret'&quot;);
+    shouldBe(&quot;key.extractable&quot;, &quot;true&quot;);
+    shouldBe(&quot;key.algorithm.name&quot;, &quot;'AES-CBC'&quot;);
+    shouldBe(&quot;key.algorithm.length&quot;, &quot;192&quot;);
+    shouldBe(&quot;key.usages&quot;, &quot;['decrypt', 'encrypt', 'unwrapKey', 'wrapKey']&quot;);
+
+    finishJSTest();
+});
+&lt;/script&gt;
+
+&lt;script src=&quot;../../resources/js-test-post.js&quot;&gt;&lt;/script&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestscryptosubtleaescbcgeneratekeylength256expectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/crypto/subtle/aes-cbc-generate-key-length-256-expected.txt (0 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/subtle/aes-cbc-generate-key-length-256-expected.txt                                (rev 0)
+++ trunk/LayoutTests/crypto/subtle/aes-cbc-generate-key-length-256-expected.txt        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -0,0 +1,15 @@
</span><ins>+Test generating an AES key with length 256 using AES-CBC algorithm.
+
+On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
+
+
+Generating a key...
+PASS key.type is 'secret'
+PASS key.extractable is true
+PASS key.algorithm.name is 'AES-CBC'
+PASS key.algorithm.length is 256
+PASS key.usages is ['decrypt', 'encrypt', 'unwrapKey', 'wrapKey']
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
</ins></span></pre></div>
<a id="trunkLayoutTestscryptosubtleaescbcgeneratekeylength256html"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/crypto/subtle/aes-cbc-generate-key-length-256.html (0 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/subtle/aes-cbc-generate-key-length-256.html                                (rev 0)
+++ trunk/LayoutTests/crypto/subtle/aes-cbc-generate-key-length-256.html        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -0,0 +1,32 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;html&gt;
+&lt;head&gt;
+&lt;script src=&quot;../../resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../resources/common.js&quot;&gt;&lt;/script&gt;
+&lt;/head&gt;
+&lt;body&gt;
+&lt;p id=&quot;description&quot;&gt;&lt;/p&gt;
+&lt;div id=&quot;console&quot;&gt;&lt;/div&gt;
+
+&lt;script&gt;
+description(&quot;Test generating an AES key with length 256 using AES-CBC algorithm.&quot;);
+
+jsTestIsAsync = true;
+
+debug(&quot;Generating a key...&quot;);
+crypto.subtle.generateKey({name: &quot;aes-cbc&quot;, length: 256}, true, [&quot;decrypt&quot;, &quot;encrypt&quot;, &quot;unwrapKey&quot;, &quot;wrapKey&quot;]).then(function(result) {
+    key = result;
+
+    shouldBe(&quot;key.type&quot;, &quot;'secret'&quot;);
+    shouldBe(&quot;key.extractable&quot;, &quot;true&quot;);
+    shouldBe(&quot;key.algorithm.name&quot;, &quot;'AES-CBC'&quot;);
+    shouldBe(&quot;key.algorithm.length&quot;, &quot;256&quot;);
+    shouldBe(&quot;key.usages&quot;, &quot;['decrypt', 'encrypt', 'unwrapKey', 'wrapKey']&quot;);
+
+    finishJSTest();
+});
+&lt;/script&gt;
+
+&lt;script src=&quot;../../resources/js-test-post.js&quot;&gt;&lt;/script&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestscryptosubtleaesgeneratekeymalformedparametersexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/crypto/subtle/aes-generate-key-malformed-parameters-expected.txt (0 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/subtle/aes-generate-key-malformed-parameters-expected.txt                                (rev 0)
+++ trunk/LayoutTests/crypto/subtle/aes-generate-key-malformed-parameters-expected.txt        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -0,0 +1,29 @@
</span><ins>+Test generating an AES key with malformed-paramters.
+
+On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
+
+
+PASS crypto.subtle.generateKey(&quot;aes-cbc&quot;, extractable, [&quot;encrypt&quot;, &quot;decrypt&quot;]) rejected promise  with TypeError: Member AesKeyGenParams.length is required and must be an instance of unsigned short.
+PASS crypto.subtle.generateKey({name: &quot;aes-cbc&quot;}, extractable, [&quot;encrypt&quot;, &quot;decrypt&quot;]) rejected promise  with TypeError: Member AesKeyGenParams.length is required and must be an instance of unsigned short.
+PASS crypto.subtle.generateKey({name: &quot;aes-cbc&quot;, length: true}, extractable, [&quot;encrypt&quot;, &quot;decrypt&quot;]) rejected promise  with OperationError (DOM Exception 34): The operation failed for an operation-specific reason.
+PASS crypto.subtle.generateKey({name: &quot;aes-cbc&quot;, length: null}, extractable, [&quot;encrypt&quot;, &quot;decrypt&quot;]) rejected promise  with OperationError (DOM Exception 34): The operation failed for an operation-specific reason.
+PASS crypto.subtle.generateKey({name: &quot;aes-cbc&quot;, length: undefined}, extractable, [&quot;encrypt&quot;, &quot;decrypt&quot;]) rejected promise  with TypeError: Member AesKeyGenParams.length is required and must be an instance of unsigned short.
+PASS crypto.subtle.generateKey({name: &quot;aes-cbc&quot;, length: Symbol()}, extractable, [&quot;encrypt&quot;, &quot;decrypt&quot;]) rejected promise  with TypeError: Cannot convert a symbol to a number.
+PASS crypto.subtle.generateKey({name: &quot;aes-cbc&quot;, length: { }}, extractable, [&quot;encrypt&quot;, &quot;decrypt&quot;]) rejected promise  with OperationError (DOM Exception 34): The operation failed for an operation-specific reason.
+PASS crypto.subtle.generateKey({name: &quot;aes-cbc&quot;, length: &quot;foo&quot;}, extractable, [&quot;encrypt&quot;, &quot;decrypt&quot;]) rejected promise  with OperationError (DOM Exception 34): The operation failed for an operation-specific reason.
+PASS crypto.subtle.generateKey({name: &quot;aes-cbc&quot;, length: 128}, extractable, [&quot;sign&quot;]) rejected promise  with SyntaxError (DOM Exception 12): A required parameter was missing or out-of-range.
+PASS crypto.subtle.generateKey({name: &quot;aes-cbc&quot;, length: 128}, extractable, [&quot;verify&quot;]) rejected promise  with SyntaxError (DOM Exception 12): A required parameter was missing or out-of-range.
+PASS crypto.subtle.generateKey({name: &quot;aes-cbc&quot;, length: 128}, extractable, [&quot;deriveKey&quot;]) rejected promise  with SyntaxError (DOM Exception 12): A required parameter was missing or out-of-range.
+PASS crypto.subtle.generateKey({name: &quot;aes-cbc&quot;, length: 128}, extractable, [&quot;deriveBits&quot;]) rejected promise  with SyntaxError (DOM Exception 12): A required parameter was missing or out-of-range.
+PASS crypto.subtle.generateKey({name: &quot;aes-kw&quot;, length: 128}, extractable, [&quot;encrypt&quot;]) rejected promise  with SyntaxError (DOM Exception 12): A required parameter was missing or out-of-range.
+PASS crypto.subtle.generateKey({name: &quot;aes-kw&quot;, length: 128}, extractable, [&quot;decrypt&quot;]) rejected promise  with SyntaxError (DOM Exception 12): A required parameter was missing or out-of-range.
+PASS crypto.subtle.generateKey({name: &quot;aes-kw&quot;, length: 128}, extractable, [&quot;sign&quot;]) rejected promise  with SyntaxError (DOM Exception 12): A required parameter was missing or out-of-range.
+PASS crypto.subtle.generateKey({name: &quot;aes-kw&quot;, length: 128}, extractable, [&quot;verify&quot;]) rejected promise  with SyntaxError (DOM Exception 12): A required parameter was missing or out-of-range.
+PASS crypto.subtle.generateKey({name: &quot;aes-kw&quot;, length: 128}, extractable, [&quot;deriveKey&quot;]) rejected promise  with SyntaxError (DOM Exception 12): A required parameter was missing or out-of-range.
+PASS crypto.subtle.generateKey({name: &quot;aes-kw&quot;, length: 128}, extractable, [&quot;deriveBits&quot;]) rejected promise  with SyntaxError (DOM Exception 12): A required parameter was missing or out-of-range.
+PASS crypto.subtle.generateKey({name: &quot;aes-cbc&quot;, length: 111}, extractable, [&quot;encrypt&quot;]) rejected promise  with OperationError (DOM Exception 34): The operation failed for an operation-specific reason.
+PASS crypto.subtle.generateKey({name: &quot;aes-kw&quot;, length: 111}, extractable, [&quot;wrapKey&quot;]) rejected promise  with OperationError (DOM Exception 34): The operation failed for an operation-specific reason.
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
</ins></span></pre></div>
<a id="trunkLayoutTestscryptosubtleaesgeneratekeymalformedparametershtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/crypto/subtle/aes-generate-key-malformed-parameters.html (0 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/subtle/aes-generate-key-malformed-parameters.html                                (rev 0)
+++ trunk/LayoutTests/crypto/subtle/aes-generate-key-malformed-parameters.html        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -0,0 +1,43 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;html&gt;
+&lt;head&gt;
+&lt;script src=&quot;../../resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../resources/common.js&quot;&gt;&lt;/script&gt;
+&lt;/head&gt;
+&lt;body&gt;
+&lt;p id=&quot;description&quot;&gt;&lt;/p&gt;
+&lt;div id=&quot;console&quot;&gt;&lt;/div&gt;
+
+&lt;script&gt;
+description(&quot;Test generating an AES key with malformed-paramters.&quot;);
+
+var extractable = true;
+
+// Malformed AlgorithmIdentifiers
+shouldReject('crypto.subtle.generateKey(&quot;aes-cbc&quot;, extractable, [&quot;encrypt&quot;, &quot;decrypt&quot;])');
+shouldReject('crypto.subtle.generateKey({name: &quot;aes-cbc&quot;}, extractable, [&quot;encrypt&quot;, &quot;decrypt&quot;])');
+shouldReject('crypto.subtle.generateKey({name: &quot;aes-cbc&quot;, length: true}, extractable, [&quot;encrypt&quot;, &quot;decrypt&quot;])');
+shouldReject('crypto.subtle.generateKey({name: &quot;aes-cbc&quot;, length: null}, extractable, [&quot;encrypt&quot;, &quot;decrypt&quot;])');
+shouldReject('crypto.subtle.generateKey({name: &quot;aes-cbc&quot;, length: undefined}, extractable, [&quot;encrypt&quot;, &quot;decrypt&quot;])');
+shouldReject('crypto.subtle.generateKey({name: &quot;aes-cbc&quot;, length: Symbol()}, extractable, [&quot;encrypt&quot;, &quot;decrypt&quot;])');
+shouldReject('crypto.subtle.generateKey({name: &quot;aes-cbc&quot;, length: { }}, extractable, [&quot;encrypt&quot;, &quot;decrypt&quot;])');
+shouldReject('crypto.subtle.generateKey({name: &quot;aes-cbc&quot;, length: &quot;foo&quot;}, extractable, [&quot;encrypt&quot;, &quot;decrypt&quot;])');
+// Wrong usages
+shouldReject('crypto.subtle.generateKey({name: &quot;aes-cbc&quot;, length: 128}, extractable, [&quot;sign&quot;])');
+shouldReject('crypto.subtle.generateKey({name: &quot;aes-cbc&quot;, length: 128}, extractable, [&quot;verify&quot;])');
+shouldReject('crypto.subtle.generateKey({name: &quot;aes-cbc&quot;, length: 128}, extractable, [&quot;deriveKey&quot;])');
+shouldReject('crypto.subtle.generateKey({name: &quot;aes-cbc&quot;, length: 128}, extractable, [&quot;deriveBits&quot;])');
+shouldReject('crypto.subtle.generateKey({name: &quot;aes-kw&quot;, length: 128}, extractable, [&quot;encrypt&quot;])');
+shouldReject('crypto.subtle.generateKey({name: &quot;aes-kw&quot;, length: 128}, extractable, [&quot;decrypt&quot;])');
+shouldReject('crypto.subtle.generateKey({name: &quot;aes-kw&quot;, length: 128}, extractable, [&quot;sign&quot;])');
+shouldReject('crypto.subtle.generateKey({name: &quot;aes-kw&quot;, length: 128}, extractable, [&quot;verify&quot;])');
+shouldReject('crypto.subtle.generateKey({name: &quot;aes-kw&quot;, length: 128}, extractable, [&quot;deriveKey&quot;])');
+shouldReject('crypto.subtle.generateKey({name: &quot;aes-kw&quot;, length: 128}, extractable, [&quot;deriveBits&quot;])');
+// Wrong length
+shouldReject('crypto.subtle.generateKey({name: &quot;aes-cbc&quot;, length: 111}, extractable, [&quot;encrypt&quot;])');
+shouldReject('crypto.subtle.generateKey({name: &quot;aes-kw&quot;, length: 111}, extractable, [&quot;wrapKey&quot;])');
+&lt;/script&gt;
+
+&lt;script src=&quot;../../resources/js-test-post.js&quot;&gt;&lt;/script&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestscryptosubtleaeskwgeneratekeyexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/crypto/subtle/aes-kw-generate-key-expected.txt (0 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/subtle/aes-kw-generate-key-expected.txt                                (rev 0)
+++ trunk/LayoutTests/crypto/subtle/aes-kw-generate-key-expected.txt        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -0,0 +1,15 @@
</span><ins>+Test generating an AES key with length 128 using AES-KW algorithm.
+
+On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
+
+
+Generating a key...
+PASS key.type is 'secret'
+PASS key.extractable is true
+PASS key.algorithm.name is 'AES-KW'
+PASS key.algorithm.length is 128
+PASS key.usages is ['unwrapKey', 'wrapKey']
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
</ins></span></pre></div>
<a id="trunkLayoutTestscryptosubtleaeskwgeneratekeyhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/crypto/subtle/aes-kw-generate-key.html (0 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/subtle/aes-kw-generate-key.html                                (rev 0)
+++ trunk/LayoutTests/crypto/subtle/aes-kw-generate-key.html        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -0,0 +1,32 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;html&gt;
+&lt;head&gt;
+&lt;script src=&quot;../../resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../resources/common.js&quot;&gt;&lt;/script&gt;
+&lt;/head&gt;
+&lt;body&gt;
+&lt;p id=&quot;description&quot;&gt;&lt;/p&gt;
+&lt;div id=&quot;console&quot;&gt;&lt;/div&gt;
+
+&lt;script&gt;
+description(&quot;Test generating an AES key with length 128 using AES-KW algorithm.&quot;);
+
+jsTestIsAsync = true;
+
+debug(&quot;Generating a key...&quot;);
+crypto.subtle.generateKey({name: &quot;aes-kw&quot;, length: 128}, true, [&quot;unwrapKey&quot;, &quot;wrapKey&quot;]).then(function(result) {
+    key = result;
+
+    shouldBe(&quot;key.type&quot;, &quot;'secret'&quot;);
+    shouldBe(&quot;key.extractable&quot;, &quot;true&quot;);
+    shouldBe(&quot;key.algorithm.name&quot;, &quot;'AES-KW'&quot;);
+    shouldBe(&quot;key.algorithm.length&quot;, &quot;128&quot;);
+    shouldBe(&quot;key.usages&quot;, &quot;['unwrapKey', 'wrapKey']&quot;);
+
+    finishJSTest();
+});
+&lt;/script&gt;
+
+&lt;script src=&quot;../../resources/js-test-post.js&quot;&gt;&lt;/script&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestscryptosubtlegeneratekeymalformedparamtersexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/crypto/subtle/generate-key-malformed-paramters-expected.txt (0 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/subtle/generate-key-malformed-paramters-expected.txt                                (rev 0)
+++ trunk/LayoutTests/crypto/subtle/generate-key-malformed-paramters-expected.txt        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -0,0 +1,48 @@
</span><ins>+Test generating a CryptoKey object with malformed parameters
+
+On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
+
+
+PASS crypto.subtle.generateKey() rejected promise  with TypeError: Not enough arguments.
+PASS crypto.subtle.generateKey(1) rejected promise  with TypeError: Not enough arguments.
+PASS crypto.subtle.generateKey(1, 2) rejected promise  with TypeError: Not enough arguments.
+PASS crypto.subtle.generateKey(1, 2, 3) rejected promise  with TypeError: Invalid AlgorithmIdentifier.
+PASS crypto.subtle.generateKey(&quot;foo&quot;, 2, 3) rejected promise  with NotSupportedError (DOM Exception 9): The operation is not supported..
+PASS crypto.subtle.generateKey({name: 1}, 2, 3) rejected promise  with NotSupportedError (DOM Exception 9): The operation is not supported..
+PASS crypto.subtle.generateKey({name: true}, 2, 3) rejected promise  with NotSupportedError (DOM Exception 9): The operation is not supported..
+PASS crypto.subtle.generateKey({name: null}, 2, 3) rejected promise  with NotSupportedError (DOM Exception 9): The operation is not supported..
+PASS crypto.subtle.generateKey({name: undefined}, 2, 3) rejected promise  with TypeError: Member CryptoAlgorithmParameters.name is required and must be an instance of DOMString.
+PASS crypto.subtle.generateKey({name: Symbol()}, 2, 3) rejected promise  with TypeError: Cannot convert a symbol to a string.
+PASS crypto.subtle.generateKey({name: { }}, 2, 3) rejected promise  with NotSupportedError (DOM Exception 9): The operation is not supported..
+PASS crypto.subtle.generateKey({name: &quot;foo&quot;}, 2, 3) rejected promise  with NotSupportedError (DOM Exception 9): The operation is not supported..
+PASS crypto.subtle.generateKey({name: &quot;hmac&quot;, hash: true}, extractable, [&quot;sign&quot;, &quot;verify&quot;]) rejected promise  with TypeError: Invalid AlgorithmIdentifier.
+PASS crypto.subtle.generateKey({name: &quot;hmac&quot;, hash: 1}, extractable, [&quot;sign&quot;, &quot;verify&quot;]) rejected promise  with TypeError: Invalid AlgorithmIdentifier.
+PASS crypto.subtle.generateKey({name: &quot;hmac&quot;, hash: null}, extractable, [&quot;sign&quot;, &quot;verify&quot;]) rejected promise  with TypeError: Invalid AlgorithmIdentifier.
+PASS crypto.subtle.generateKey({name: &quot;hmac&quot;, hash: undefined}, extractable, [&quot;sign&quot;, &quot;verify&quot;]) rejected promise  with TypeError: Member HmacKeyGenParams.hash is required and must be an instance of any.
+PASS crypto.subtle.generateKey({name: &quot;hmac&quot;, hash: Symbol()}, extractable, [&quot;sign&quot;, &quot;verify&quot;]) rejected promise  with TypeError: Invalid AlgorithmIdentifier.
+PASS crypto.subtle.generateKey({name: &quot;hmac&quot;, hash: { }}, extractable, [&quot;sign&quot;, &quot;verify&quot;]) rejected promise  with TypeError: Member CryptoAlgorithmParameters.name is required and must be an instance of DOMString.
+PASS crypto.subtle.generateKey({name: &quot;hmac&quot;, hash: &quot;foo&quot;}, extractable, [&quot;sign&quot;, &quot;verify&quot;]) rejected promise  with NotSupportedError (DOM Exception 9): The operation is not supported..
+PASS crypto.subtle.generateKey({name: &quot;hmac&quot;, hash: {name: true}}, extractable, [&quot;sign&quot;, &quot;verify&quot;]) rejected promise  with NotSupportedError (DOM Exception 9): The operation is not supported..
+PASS crypto.subtle.generateKey({name: &quot;hmac&quot;, hash: {name: 1}}, extractable, [&quot;sign&quot;, &quot;verify&quot;]) rejected promise  with NotSupportedError (DOM Exception 9): The operation is not supported..
+PASS crypto.subtle.generateKey({name: &quot;hmac&quot;, hash: {name: null}}, extractable, [&quot;sign&quot;, &quot;verify&quot;]) rejected promise  with NotSupportedError (DOM Exception 9): The operation is not supported..
+PASS crypto.subtle.generateKey({name: &quot;hmac&quot;, hash: {name: undefined}}, extractable, [&quot;sign&quot;, &quot;verify&quot;]) rejected promise  with TypeError: Member CryptoAlgorithmParameters.name is required and must be an instance of DOMString.
+PASS crypto.subtle.generateKey({name: &quot;hmac&quot;, hash: {name: Symbol()}}, extractable, [&quot;sign&quot;, &quot;verify&quot;]) rejected promise  with TypeError: Cannot convert a symbol to a string.
+PASS crypto.subtle.generateKey({name: &quot;hmac&quot;, hash: {name: { }}}, extractable, [&quot;sign&quot;, &quot;verify&quot;]) rejected promise  with NotSupportedError (DOM Exception 9): The operation is not supported..
+PASS crypto.subtle.generateKey({name: &quot;hmac&quot;, hash: {name: &quot;foo&quot;}}, extractable, [&quot;sign&quot;, &quot;verify&quot;]) rejected promise  with NotSupportedError (DOM Exception 9): The operation is not supported..
+PASS crypto.subtle.generateKey({name: &quot;SHA-1&quot;}, 2, 3) rejected promise  with NotSupportedError (DOM Exception 9): The operation is not supported..
+PASS crypto.subtle.generateKey({name: &quot;SHA-256&quot;}, 2, 3) rejected promise  with NotSupportedError (DOM Exception 9): The operation is not supported..
+PASS crypto.subtle.generateKey({name: &quot;SHA-384&quot;}, 2, 3) rejected promise  with NotSupportedError (DOM Exception 9): The operation is not supported..
+PASS crypto.subtle.generateKey({name: &quot;SHA-512&quot;}, 2, 3) rejected promise  with NotSupportedError (DOM Exception 9): The operation is not supported..
+PASS crypto.subtle.generateKey({name: &quot;AES-CBC&quot;, length: 128}, extractable, 3) rejected promise  with TypeError: Type error.
+PASS crypto.subtle.generateKey({name: &quot;AES-CBC&quot;, length: 128}, extractable, true) rejected promise  with TypeError: Type error.
+PASS crypto.subtle.generateKey({name: &quot;AES-CBC&quot;, length: 128}, extractable, null) rejected promise  with TypeError: null is not an object (evaluating 'crypto.subtle.generateKey({name: &quot;AES-CBC&quot;, length: 128}, extractable, null)').
+PASS crypto.subtle.generateKey({name: &quot;AES-CBC&quot;, length: 128}, extractable, undefined) rejected promise  with TypeError: undefined is not an object (evaluating 'crypto.subtle.generateKey({name: &quot;AES-CBC&quot;, length: 128}, extractable, undefined)').
+PASS crypto.subtle.generateKey({name: &quot;AES-CBC&quot;, length: 128}, extractable, Symbol()) rejected promise  with TypeError: Type error.
+PASS crypto.subtle.generateKey({name: &quot;AES-CBC&quot;, length: 128}, extractable, { }) rejected promise  with TypeError: Type error.
+PASS crypto.subtle.generateKey({name: &quot;AES-CBC&quot;, length: 128}, extractable, &quot;foo&quot;) rejected promise  with TypeError: Invalid KeyUsages.
+PASS crypto.subtle.generateKey({name: &quot;AES-CBC&quot;, length: 128}, extractable, [ ]) rejected promise  with SyntaxError (DOM Exception 12): A required parameter was missing or out-of-range.
+PASS crypto.subtle.generateKey({name: &quot;RSAES-PKCS1-v1_5&quot;, modulusLength: 2048, publicExponent: new Uint8Array([0x01, 0x00, 0x01])}, extractable, [ ]) rejected promise  with SyntaxError (DOM Exception 12): A required parameter was missing or out-of-range.
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
</ins></span></pre></div>
<a id="trunkLayoutTestscryptosubtlegeneratekeymalformedparamtershtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/crypto/subtle/generate-key-malformed-paramters.html (0 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/subtle/generate-key-malformed-paramters.html                                (rev 0)
+++ trunk/LayoutTests/crypto/subtle/generate-key-malformed-paramters.html        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -0,0 +1,67 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;html&gt;
+&lt;head&gt;
+&lt;script src=&quot;../../resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../resources/common.js&quot;&gt;&lt;/script&gt;
+&lt;/head&gt;
+&lt;body&gt;
+&lt;p id=&quot;description&quot;&gt;&lt;/p&gt;
+&lt;div id=&quot;console&quot;&gt;&lt;/div&gt;
+
+&lt;script&gt;
+description(&quot;Test generating a CryptoKey object with malformed parameters&quot;);
+
+jsTestIsAsync = true;
+
+var extractable = true;
+
+// Not enough arguments.
+shouldReject('crypto.subtle.generateKey()');
+shouldReject('crypto.subtle.generateKey(1)');
+shouldReject('crypto.subtle.generateKey(1, 2)');
+shouldReject('crypto.subtle.generateKey(1, 2, 3)');
+// Malformed AlgorithmIdentifiers.
+shouldReject('crypto.subtle.generateKey(&quot;foo&quot;, 2, 3)');
+shouldReject('crypto.subtle.generateKey({name: 1}, 2, 3)');
+shouldReject('crypto.subtle.generateKey({name: true}, 2, 3)');
+shouldReject('crypto.subtle.generateKey({name: null}, 2, 3)');
+shouldReject('crypto.subtle.generateKey({name: undefined}, 2, 3)');
+shouldReject('crypto.subtle.generateKey({name: Symbol()}, 2, 3)');
+shouldReject('crypto.subtle.generateKey({name: { }}, 2, 3)');
+shouldReject('crypto.subtle.generateKey({name: &quot;foo&quot;}, 2, 3)');
+// Malformed Hash.
+shouldReject('crypto.subtle.generateKey({name: &quot;hmac&quot;, hash: true}, extractable, [&quot;sign&quot;, &quot;verify&quot;])');
+shouldReject('crypto.subtle.generateKey({name: &quot;hmac&quot;, hash: 1}, extractable, [&quot;sign&quot;, &quot;verify&quot;])');
+shouldReject('crypto.subtle.generateKey({name: &quot;hmac&quot;, hash: null}, extractable, [&quot;sign&quot;, &quot;verify&quot;])');
+shouldReject('crypto.subtle.generateKey({name: &quot;hmac&quot;, hash: undefined}, extractable, [&quot;sign&quot;, &quot;verify&quot;])');
+shouldReject('crypto.subtle.generateKey({name: &quot;hmac&quot;, hash: Symbol()}, extractable, [&quot;sign&quot;, &quot;verify&quot;])');
+shouldReject('crypto.subtle.generateKey({name: &quot;hmac&quot;, hash: { }}, extractable, [&quot;sign&quot;, &quot;verify&quot;])');
+shouldReject('crypto.subtle.generateKey({name: &quot;hmac&quot;, hash: &quot;foo&quot;}, extractable, [&quot;sign&quot;, &quot;verify&quot;])');
+shouldReject('crypto.subtle.generateKey({name: &quot;hmac&quot;, hash: {name: true}}, extractable, [&quot;sign&quot;, &quot;verify&quot;])');
+shouldReject('crypto.subtle.generateKey({name: &quot;hmac&quot;, hash: {name: 1}}, extractable, [&quot;sign&quot;, &quot;verify&quot;])');
+shouldReject('crypto.subtle.generateKey({name: &quot;hmac&quot;, hash: {name: null}}, extractable, [&quot;sign&quot;, &quot;verify&quot;])');
+shouldReject('crypto.subtle.generateKey({name: &quot;hmac&quot;, hash: {name: undefined}}, extractable, [&quot;sign&quot;, &quot;verify&quot;])');
+shouldReject('crypto.subtle.generateKey({name: &quot;hmac&quot;, hash: {name: Symbol()}}, extractable, [&quot;sign&quot;, &quot;verify&quot;])');
+shouldReject('crypto.subtle.generateKey({name: &quot;hmac&quot;, hash: {name: { }}}, extractable, [&quot;sign&quot;, &quot;verify&quot;])');
+shouldReject('crypto.subtle.generateKey({name: &quot;hmac&quot;, hash: {name: &quot;foo&quot;}}, extractable, [&quot;sign&quot;, &quot;verify&quot;])');
+// Algorithms not supported generateKey op.
+shouldReject('crypto.subtle.generateKey({name: &quot;SHA-1&quot;}, 2, 3)');
+shouldReject('crypto.subtle.generateKey({name: &quot;SHA-256&quot;}, 2, 3)');
+shouldReject('crypto.subtle.generateKey({name: &quot;SHA-384&quot;}, 2, 3)');
+shouldReject('crypto.subtle.generateKey({name: &quot;SHA-512&quot;}, 2, 3)');
+// Wrong KeyUsage type.
+shouldReject('crypto.subtle.generateKey({name: &quot;AES-CBC&quot;, length: 128}, extractable, 3)');
+shouldReject('crypto.subtle.generateKey({name: &quot;AES-CBC&quot;, length: 128}, extractable, true)');
+shouldReject('crypto.subtle.generateKey({name: &quot;AES-CBC&quot;, length: 128}, extractable, null)');
+shouldReject('crypto.subtle.generateKey({name: &quot;AES-CBC&quot;, length: 128}, extractable, undefined)');
+shouldReject('crypto.subtle.generateKey({name: &quot;AES-CBC&quot;, length: 128}, extractable, Symbol())');
+shouldReject('crypto.subtle.generateKey({name: &quot;AES-CBC&quot;, length: 128}, extractable, { })');
+shouldReject('crypto.subtle.generateKey({name: &quot;AES-CBC&quot;, length: 128}, extractable, &quot;foo&quot;)');
+// Syntax error.
+shouldReject('crypto.subtle.generateKey({name: &quot;AES-CBC&quot;, length: 128}, extractable, [ ])');
+shouldReject('crypto.subtle.generateKey({name: &quot;RSAES-PKCS1-v1_5&quot;, modulusLength: 2048, publicExponent: new Uint8Array([0x01, 0x00, 0x01])}, extractable, [ ])', finishJSTest);
+&lt;/script&gt;
+
+&lt;script src=&quot;../../resources/js-test-post.js&quot;&gt;&lt;/script&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestscryptosubtlehmacgeneratekeycustomizedlengthexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/crypto/subtle/hmac-generate-key-customized-length-expected.txt (0 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/subtle/hmac-generate-key-customized-length-expected.txt                                (rev 0)
+++ trunk/LayoutTests/crypto/subtle/hmac-generate-key-customized-length-expected.txt        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -0,0 +1,17 @@
</span><ins>+Test generating a HMAC key with customized length.
+
+On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
+
+
+
+Generating a key...
+PASS key.type is 'secret'
+PASS key.extractable is true
+PASS key.algorithm.name is 'HMAC'
+PASS key.algorithm.length is 111
+PASS key.algorithm.hash.name is 'SHA-512'
+PASS key.usages is [&quot;sign&quot;, &quot;verify&quot;]
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
</ins></span></pre></div>
<a id="trunkLayoutTestscryptosubtlehmacgeneratekeycustomizedlengthhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/crypto/subtle/hmac-generate-key-customized-length.html (0 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/subtle/hmac-generate-key-customized-length.html                                (rev 0)
+++ trunk/LayoutTests/crypto/subtle/hmac-generate-key-customized-length.html        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -0,0 +1,35 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;html&gt;
+&lt;head&gt;
+&lt;script src=&quot;../../resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../resources/common.js&quot;&gt;&lt;/script&gt;
+&lt;/head&gt;
+&lt;body&gt;
+&lt;p id=&quot;description&quot;&gt;&lt;/p&gt;
+&lt;div id=&quot;console&quot;&gt;&lt;/div&gt;
+
+&lt;script&gt;
+description(&quot;Test generating a HMAC key with customized length.&quot;);
+
+jsTestIsAsync = true;
+
+var extractable = true;
+
+debug(&quot;\nGenerating a key...&quot;);
+crypto.subtle.generateKey({name: &quot;hmac&quot;, hash: &quot;sha-512&quot;, length: 111}, extractable, [&quot;sign&quot;, &quot;verify&quot;]).then(function(result) {
+    key = result;
+
+    shouldBe(&quot;key.type&quot;, &quot;'secret'&quot;);
+    shouldBe(&quot;key.extractable&quot;, &quot;true&quot;);
+    shouldBe(&quot;key.algorithm.name&quot;, &quot;'HMAC'&quot;);
+    shouldBe(&quot;key.algorithm.length&quot;, &quot;111&quot;);
+    shouldBe(&quot;key.algorithm.hash.name&quot;, &quot;'SHA-512'&quot;);
+    shouldBe(&quot;key.usages&quot;, '[&quot;sign&quot;, &quot;verify&quot;]');
+
+    finishJSTest();
+});
+&lt;/script&gt;
+
+&lt;script src=&quot;../../resources/js-test-post.js&quot;&gt;&lt;/script&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestscryptosubtlehmacgeneratekeyhashobjectexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/crypto/subtle/hmac-generate-key-hash-object-expected.txt (0 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/subtle/hmac-generate-key-hash-object-expected.txt                                (rev 0)
+++ trunk/LayoutTests/crypto/subtle/hmac-generate-key-hash-object-expected.txt        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -0,0 +1,17 @@
</span><ins>+Test generating a HMAC key with sha-1 object.
+
+On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
+
+
+
+Generating a key...
+PASS key.type is 'secret'
+PASS key.extractable is true
+PASS key.algorithm.name is 'HMAC'
+PASS key.algorithm.length is 512
+PASS key.algorithm.hash.name is 'SHA-1'
+PASS key.usages is [&quot;sign&quot;, &quot;verify&quot;]
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
</ins></span></pre></div>
<a id="trunkLayoutTestscryptosubtlehmacgeneratekeyhashobjecthtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/crypto/subtle/hmac-generate-key-hash-object.html (0 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/subtle/hmac-generate-key-hash-object.html                                (rev 0)
+++ trunk/LayoutTests/crypto/subtle/hmac-generate-key-hash-object.html        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -0,0 +1,35 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;html&gt;
+&lt;head&gt;
+&lt;script src=&quot;../../resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../resources/common.js&quot;&gt;&lt;/script&gt;
+&lt;/head&gt;
+&lt;body&gt;
+&lt;p id=&quot;description&quot;&gt;&lt;/p&gt;
+&lt;div id=&quot;console&quot;&gt;&lt;/div&gt;
+
+&lt;script&gt;
+description(&quot;Test generating a HMAC key with sha-1 object.&quot;);
+
+jsTestIsAsync = true;
+
+var extractable = true;
+
+debug(&quot;\nGenerating a key...&quot;);
+crypto.subtle.generateKey({name: &quot;hmac&quot;, hash: {name: &quot;sha-1&quot;}}, extractable, [&quot;sign&quot;, &quot;verify&quot;]).then(function(result) {
+    key = result;
+
+    shouldBe(&quot;key.type&quot;, &quot;'secret'&quot;);
+    shouldBe(&quot;key.extractable&quot;, &quot;true&quot;);
+    shouldBe(&quot;key.algorithm.name&quot;, &quot;'HMAC'&quot;);
+    shouldBe(&quot;key.algorithm.length&quot;, &quot;512&quot;);
+    shouldBe(&quot;key.algorithm.hash.name&quot;, &quot;'SHA-1'&quot;);
+    shouldBe(&quot;key.usages&quot;, '[&quot;sign&quot;, &quot;verify&quot;]');
+
+    finishJSTest();
+});
+&lt;/script&gt;
+
+&lt;script src=&quot;../../resources/js-test-post.js&quot;&gt;&lt;/script&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestscryptosubtlehmacgeneratekeymalformedparametersexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/crypto/subtle/hmac-generate-key-malformed-parameters-expected.txt (0 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/subtle/hmac-generate-key-malformed-parameters-expected.txt                                (rev 0)
+++ trunk/LayoutTests/crypto/subtle/hmac-generate-key-malformed-parameters-expected.txt        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -0,0 +1,22 @@
</span><ins>+Test generating an HMAC key with malformed-paramters.
+
+On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
+
+
+PASS crypto.subtle.generateKey(&quot;hmac&quot;, extractable, [&quot;sign&quot;, &quot;verify&quot;]) rejected promise  with TypeError: Member HmacKeyGenParams.hash is required and must be an instance of any.
+PASS crypto.subtle.generateKey({name: &quot;hmac&quot;}, extractable, [&quot;sign&quot;, &quot;verify&quot;]) rejected promise  with TypeError: Member HmacKeyGenParams.hash is required and must be an instance of any.
+PASS crypto.subtle.generateKey({name: &quot;hmac&quot;, hash: &quot;sha-1&quot;, length: null}, extractable, [&quot;sign&quot;, &quot;verify&quot;]) rejected promise  with OperationError (DOM Exception 34): The operation failed for an operation-specific reason.
+PASS crypto.subtle.generateKey({name: &quot;hmac&quot;, hash: &quot;sha-1&quot;, length: Symbol()}, extractable, [&quot;sign&quot;, &quot;verify&quot;]) rejected promise  with TypeError: Cannot convert a symbol to a number.
+PASS crypto.subtle.generateKey({name: &quot;hmac&quot;, hash: &quot;sha-1&quot;, length: { }}, extractable, [&quot;sign&quot;, &quot;verify&quot;]) rejected promise  with OperationError (DOM Exception 34): The operation failed for an operation-specific reason.
+PASS crypto.subtle.generateKey({name: &quot;hmac&quot;, hash: &quot;sha-1&quot;, length: &quot;foo&quot;}, extractable, [&quot;sign&quot;, &quot;verify&quot;]) rejected promise  with OperationError (DOM Exception 34): The operation failed for an operation-specific reason.
+PASS crypto.subtle.generateKey({name: &quot;hmac&quot;, hash: &quot;sha-1&quot;}, extractable, [&quot;encrypt&quot;]) rejected promise  with SyntaxError (DOM Exception 12): A required parameter was missing or out-of-range.
+PASS crypto.subtle.generateKey({name: &quot;hmac&quot;, hash: &quot;sha-1&quot;}, extractable, [&quot;decrypt&quot;]) rejected promise  with SyntaxError (DOM Exception 12): A required parameter was missing or out-of-range.
+PASS crypto.subtle.generateKey({name: &quot;hmac&quot;, hash: &quot;sha-1&quot;}, extractable, [&quot;deriveKey&quot;]) rejected promise  with SyntaxError (DOM Exception 12): A required parameter was missing or out-of-range.
+PASS crypto.subtle.generateKey({name: &quot;hmac&quot;, hash: &quot;sha-1&quot;}, extractable, [&quot;deriveBits&quot;]) rejected promise  with SyntaxError (DOM Exception 12): A required parameter was missing or out-of-range.
+PASS crypto.subtle.generateKey({name: &quot;hmac&quot;, hash: &quot;sha-1&quot;}, extractable, [&quot;wrapKey&quot;]) rejected promise  with SyntaxError (DOM Exception 12): A required parameter was missing or out-of-range.
+PASS crypto.subtle.generateKey({name: &quot;hmac&quot;, hash: &quot;sha-1&quot;}, extractable, [&quot;unwrapKey&quot;]) rejected promise  with SyntaxError (DOM Exception 12): A required parameter was missing or out-of-range.
+PASS crypto.subtle.generateKey({name: &quot;hmac&quot;, hash: &quot;sha-1&quot;, length: 0}, extractable, [&quot;sign&quot;, &quot;verify&quot;]) rejected promise  with OperationError (DOM Exception 34): The operation failed for an operation-specific reason.
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
</ins></span></pre></div>
<a id="trunkLayoutTestscryptosubtlehmacgeneratekeymalformedparametershtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/crypto/subtle/hmac-generate-key-malformed-parameters.html (0 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/subtle/hmac-generate-key-malformed-parameters.html                                (rev 0)
+++ trunk/LayoutTests/crypto/subtle/hmac-generate-key-malformed-parameters.html        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -0,0 +1,36 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;html&gt;
+&lt;head&gt;
+&lt;script src=&quot;../../resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../resources/common.js&quot;&gt;&lt;/script&gt;
+&lt;/head&gt;
+&lt;body&gt;
+&lt;p id=&quot;description&quot;&gt;&lt;/p&gt;
+&lt;div id=&quot;console&quot;&gt;&lt;/div&gt;
+
+&lt;script&gt;
+description(&quot;Test generating an HMAC key with malformed-paramters.&quot;);
+
+var extractable = true;
+
+// Malformed AlgorithmIdentifiers
+shouldReject('crypto.subtle.generateKey(&quot;hmac&quot;, extractable, [&quot;sign&quot;, &quot;verify&quot;])');
+shouldReject('crypto.subtle.generateKey({name: &quot;hmac&quot;}, extractable, [&quot;sign&quot;, &quot;verify&quot;])');
+shouldReject('crypto.subtle.generateKey({name: &quot;hmac&quot;, hash: &quot;sha-1&quot;, length: null}, extractable, [&quot;sign&quot;, &quot;verify&quot;])');
+shouldReject('crypto.subtle.generateKey({name: &quot;hmac&quot;, hash: &quot;sha-1&quot;, length: Symbol()}, extractable, [&quot;sign&quot;, &quot;verify&quot;])');
+shouldReject('crypto.subtle.generateKey({name: &quot;hmac&quot;, hash: &quot;sha-1&quot;, length: { }}, extractable, [&quot;sign&quot;, &quot;verify&quot;])');
+shouldReject('crypto.subtle.generateKey({name: &quot;hmac&quot;, hash: &quot;sha-1&quot;, length: &quot;foo&quot;}, extractable, [&quot;sign&quot;, &quot;verify&quot;])');
+// Wrong usages
+shouldReject('crypto.subtle.generateKey({name: &quot;hmac&quot;, hash: &quot;sha-1&quot;}, extractable, [&quot;encrypt&quot;])');
+shouldReject('crypto.subtle.generateKey({name: &quot;hmac&quot;, hash: &quot;sha-1&quot;}, extractable, [&quot;decrypt&quot;])');
+shouldReject('crypto.subtle.generateKey({name: &quot;hmac&quot;, hash: &quot;sha-1&quot;}, extractable, [&quot;deriveKey&quot;])');
+shouldReject('crypto.subtle.generateKey({name: &quot;hmac&quot;, hash: &quot;sha-1&quot;}, extractable, [&quot;deriveBits&quot;])');
+shouldReject('crypto.subtle.generateKey({name: &quot;hmac&quot;, hash: &quot;sha-1&quot;}, extractable, [&quot;wrapKey&quot;])');
+shouldReject('crypto.subtle.generateKey({name: &quot;hmac&quot;, hash: &quot;sha-1&quot;}, extractable, [&quot;unwrapKey&quot;])');
+// Wrong length
+shouldReject('crypto.subtle.generateKey({name: &quot;hmac&quot;, hash: &quot;sha-1&quot;, length: 0}, extractable, [&quot;sign&quot;, &quot;verify&quot;])');
+&lt;/script&gt;
+
+&lt;script src=&quot;../../resources/js-test-post.js&quot;&gt;&lt;/script&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestscryptosubtlehmacgeneratekeysha1expectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/crypto/subtle/hmac-generate-key-sha1-expected.txt (0 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/subtle/hmac-generate-key-sha1-expected.txt                                (rev 0)
+++ trunk/LayoutTests/crypto/subtle/hmac-generate-key-sha1-expected.txt        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -0,0 +1,17 @@
</span><ins>+Test generating a HMAC key with sha-1.
+
+On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
+
+
+
+Generating a key...
+PASS key.type is 'secret'
+PASS key.extractable is true
+PASS key.algorithm.name is 'HMAC'
+PASS key.algorithm.length is 512
+PASS key.algorithm.hash.name is 'SHA-1'
+PASS key.usages is [&quot;sign&quot;, &quot;verify&quot;]
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
</ins></span></pre></div>
<a id="trunkLayoutTestscryptosubtlehmacgeneratekeysha1html"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/crypto/subtle/hmac-generate-key-sha1.html (0 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/subtle/hmac-generate-key-sha1.html                                (rev 0)
+++ trunk/LayoutTests/crypto/subtle/hmac-generate-key-sha1.html        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -0,0 +1,35 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;html&gt;
+&lt;head&gt;
+&lt;script src=&quot;../../resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../resources/common.js&quot;&gt;&lt;/script&gt;
+&lt;/head&gt;
+&lt;body&gt;
+&lt;p id=&quot;description&quot;&gt;&lt;/p&gt;
+&lt;div id=&quot;console&quot;&gt;&lt;/div&gt;
+
+&lt;script&gt;
+description(&quot;Test generating a HMAC key with sha-1.&quot;);
+
+jsTestIsAsync = true;
+
+var extractable = true;
+
+debug(&quot;\nGenerating a key...&quot;);
+crypto.subtle.generateKey({name: &quot;hmac&quot;, hash: &quot;sha-1&quot;}, extractable, [&quot;sign&quot;, &quot;verify&quot;]).then(function(result) {
+    key = result;
+
+    shouldBe(&quot;key.type&quot;, &quot;'secret'&quot;);
+    shouldBe(&quot;key.extractable&quot;, &quot;true&quot;);
+    shouldBe(&quot;key.algorithm.name&quot;, &quot;'HMAC'&quot;);
+    shouldBe(&quot;key.algorithm.length&quot;, &quot;512&quot;);
+    shouldBe(&quot;key.algorithm.hash.name&quot;, &quot;'SHA-1'&quot;);
+    shouldBe(&quot;key.usages&quot;, '[&quot;sign&quot;, &quot;verify&quot;]');
+
+    finishJSTest();
+});
+&lt;/script&gt;
+
+&lt;script src=&quot;../../resources/js-test-post.js&quot;&gt;&lt;/script&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestscryptosubtlehmacgeneratekeysha224expectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/crypto/subtle/hmac-generate-key-sha224-expected.txt (0 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/subtle/hmac-generate-key-sha224-expected.txt                                (rev 0)
+++ trunk/LayoutTests/crypto/subtle/hmac-generate-key-sha224-expected.txt        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -0,0 +1,17 @@
</span><ins>+Test generating a HMAC key with sha-224.
+
+On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
+
+
+
+Generating a key...
+PASS key.type is 'secret'
+PASS key.extractable is true
+PASS key.algorithm.name is 'HMAC'
+PASS key.algorithm.length is 512
+PASS key.algorithm.hash.name is 'SHA-224'
+PASS key.usages is [&quot;sign&quot;, &quot;verify&quot;]
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
</ins></span></pre></div>
<a id="trunkLayoutTestscryptosubtlehmacgeneratekeysha224html"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/crypto/subtle/hmac-generate-key-sha224.html (0 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/subtle/hmac-generate-key-sha224.html                                (rev 0)
+++ trunk/LayoutTests/crypto/subtle/hmac-generate-key-sha224.html        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -0,0 +1,35 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;html&gt;
+&lt;head&gt;
+&lt;script src=&quot;../../resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../resources/common.js&quot;&gt;&lt;/script&gt;
+&lt;/head&gt;
+&lt;body&gt;
+&lt;p id=&quot;description&quot;&gt;&lt;/p&gt;
+&lt;div id=&quot;console&quot;&gt;&lt;/div&gt;
+
+&lt;script&gt;
+description(&quot;Test generating a HMAC key with sha-224.&quot;);
+
+jsTestIsAsync = true;
+
+var extractable = true;
+
+debug(&quot;\nGenerating a key...&quot;);
+crypto.subtle.generateKey({name: &quot;hmac&quot;, hash: &quot;sha-224&quot;}, extractable, [&quot;sign&quot;, &quot;verify&quot;]).then(function(result) {
+    key = result;
+
+    shouldBe(&quot;key.type&quot;, &quot;'secret'&quot;);
+    shouldBe(&quot;key.extractable&quot;, &quot;true&quot;);
+    shouldBe(&quot;key.algorithm.name&quot;, &quot;'HMAC'&quot;);
+    shouldBe(&quot;key.algorithm.length&quot;, &quot;512&quot;);
+    shouldBe(&quot;key.algorithm.hash.name&quot;, &quot;'SHA-224'&quot;);
+    shouldBe(&quot;key.usages&quot;, '[&quot;sign&quot;, &quot;verify&quot;]');
+
+    finishJSTest();
+});
+&lt;/script&gt;
+
+&lt;script src=&quot;../../resources/js-test-post.js&quot;&gt;&lt;/script&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestscryptosubtlehmacgeneratekeysha256expectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/crypto/subtle/hmac-generate-key-sha256-expected.txt (0 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/subtle/hmac-generate-key-sha256-expected.txt                                (rev 0)
+++ trunk/LayoutTests/crypto/subtle/hmac-generate-key-sha256-expected.txt        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -0,0 +1,17 @@
</span><ins>+Test generating a HMAC key with sha-256.
+
+On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
+
+
+
+Generating a key...
+PASS key.type is 'secret'
+PASS key.extractable is true
+PASS key.algorithm.name is 'HMAC'
+PASS key.algorithm.length is 512
+PASS key.algorithm.hash.name is 'SHA-256'
+PASS key.usages is [&quot;sign&quot;, &quot;verify&quot;]
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
</ins></span></pre></div>
<a id="trunkLayoutTestscryptosubtlehmacgeneratekeysha256html"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/crypto/subtle/hmac-generate-key-sha256.html (0 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/subtle/hmac-generate-key-sha256.html                                (rev 0)
+++ trunk/LayoutTests/crypto/subtle/hmac-generate-key-sha256.html        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -0,0 +1,35 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;html&gt;
+&lt;head&gt;
+&lt;script src=&quot;../../resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../resources/common.js&quot;&gt;&lt;/script&gt;
+&lt;/head&gt;
+&lt;body&gt;
+&lt;p id=&quot;description&quot;&gt;&lt;/p&gt;
+&lt;div id=&quot;console&quot;&gt;&lt;/div&gt;
+
+&lt;script&gt;
+description(&quot;Test generating a HMAC key with sha-256.&quot;);
+
+jsTestIsAsync = true;
+
+var extractable = true;
+
+debug(&quot;\nGenerating a key...&quot;);
+crypto.subtle.generateKey({name: &quot;hmac&quot;, hash: &quot;sha-256&quot;}, extractable, [&quot;sign&quot;, &quot;verify&quot;]).then(function(result) {
+    key = result;
+
+    shouldBe(&quot;key.type&quot;, &quot;'secret'&quot;);
+    shouldBe(&quot;key.extractable&quot;, &quot;true&quot;);
+    shouldBe(&quot;key.algorithm.name&quot;, &quot;'HMAC'&quot;);
+    shouldBe(&quot;key.algorithm.length&quot;, &quot;512&quot;);
+    shouldBe(&quot;key.algorithm.hash.name&quot;, &quot;'SHA-256'&quot;);
+    shouldBe(&quot;key.usages&quot;, '[&quot;sign&quot;, &quot;verify&quot;]');
+
+    finishJSTest();
+});
+&lt;/script&gt;
+
+&lt;script src=&quot;../../resources/js-test-post.js&quot;&gt;&lt;/script&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestscryptosubtlehmacgeneratekeysha384expectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/crypto/subtle/hmac-generate-key-sha384-expected.txt (0 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/subtle/hmac-generate-key-sha384-expected.txt                                (rev 0)
+++ trunk/LayoutTests/crypto/subtle/hmac-generate-key-sha384-expected.txt        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -0,0 +1,17 @@
</span><ins>+Test generating a HMAC key with sha-384.
+
+On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
+
+
+
+Generating a key...
+PASS key.type is 'secret'
+PASS key.extractable is true
+PASS key.algorithm.name is 'HMAC'
+PASS key.algorithm.length is 1024
+PASS key.algorithm.hash.name is 'SHA-384'
+PASS key.usages is [&quot;sign&quot;, &quot;verify&quot;]
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
</ins></span></pre></div>
<a id="trunkLayoutTestscryptosubtlehmacgeneratekeysha384html"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/crypto/subtle/hmac-generate-key-sha384.html (0 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/subtle/hmac-generate-key-sha384.html                                (rev 0)
+++ trunk/LayoutTests/crypto/subtle/hmac-generate-key-sha384.html        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -0,0 +1,35 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;html&gt;
+&lt;head&gt;
+&lt;script src=&quot;../../resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../resources/common.js&quot;&gt;&lt;/script&gt;
+&lt;/head&gt;
+&lt;body&gt;
+&lt;p id=&quot;description&quot;&gt;&lt;/p&gt;
+&lt;div id=&quot;console&quot;&gt;&lt;/div&gt;
+
+&lt;script&gt;
+description(&quot;Test generating a HMAC key with sha-384.&quot;);
+
+jsTestIsAsync = true;
+
+var extractable = true;
+
+debug(&quot;\nGenerating a key...&quot;);
+crypto.subtle.generateKey({name: &quot;hmac&quot;, hash: &quot;sha-384&quot;}, extractable, [&quot;sign&quot;, &quot;verify&quot;]).then(function(result) {
+    key = result;
+
+    shouldBe(&quot;key.type&quot;, &quot;'secret'&quot;);
+    shouldBe(&quot;key.extractable&quot;, &quot;true&quot;);
+    shouldBe(&quot;key.algorithm.name&quot;, &quot;'HMAC'&quot;);
+    shouldBe(&quot;key.algorithm.length&quot;, &quot;1024&quot;);
+    shouldBe(&quot;key.algorithm.hash.name&quot;, &quot;'SHA-384'&quot;);
+    shouldBe(&quot;key.usages&quot;, '[&quot;sign&quot;, &quot;verify&quot;]');
+
+    finishJSTest();
+});
+&lt;/script&gt;
+
+&lt;script src=&quot;../../resources/js-test-post.js&quot;&gt;&lt;/script&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestscryptosubtlehmacgeneratekeysha512expectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/crypto/subtle/hmac-generate-key-sha512-expected.txt (0 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/subtle/hmac-generate-key-sha512-expected.txt                                (rev 0)
+++ trunk/LayoutTests/crypto/subtle/hmac-generate-key-sha512-expected.txt        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -0,0 +1,17 @@
</span><ins>+Test generating a HMAC key with sha-512.
+
+On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
+
+
+
+Generating a key...
+PASS key.type is 'secret'
+PASS key.extractable is true
+PASS key.algorithm.name is 'HMAC'
+PASS key.algorithm.length is 1024
+PASS key.algorithm.hash.name is 'SHA-512'
+PASS key.usages is [&quot;sign&quot;, &quot;verify&quot;]
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
</ins></span></pre></div>
<a id="trunkLayoutTestscryptosubtlehmacgeneratekeysha512html"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/crypto/subtle/hmac-generate-key-sha512.html (0 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/subtle/hmac-generate-key-sha512.html                                (rev 0)
+++ trunk/LayoutTests/crypto/subtle/hmac-generate-key-sha512.html        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -0,0 +1,35 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;html&gt;
+&lt;head&gt;
+&lt;script src=&quot;../../resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../resources/common.js&quot;&gt;&lt;/script&gt;
+&lt;/head&gt;
+&lt;body&gt;
+&lt;p id=&quot;description&quot;&gt;&lt;/p&gt;
+&lt;div id=&quot;console&quot;&gt;&lt;/div&gt;
+
+&lt;script&gt;
+description(&quot;Test generating a HMAC key with sha-512.&quot;);
+
+jsTestIsAsync = true;
+
+var extractable = true;
+
+debug(&quot;\nGenerating a key...&quot;);
+crypto.subtle.generateKey({name: &quot;hmac&quot;, hash: &quot;sha-512&quot;}, extractable, [&quot;sign&quot;, &quot;verify&quot;]).then(function(result) {
+    key = result;
+
+    shouldBe(&quot;key.type&quot;, &quot;'secret'&quot;);
+    shouldBe(&quot;key.extractable&quot;, &quot;true&quot;);
+    shouldBe(&quot;key.algorithm.name&quot;, &quot;'HMAC'&quot;);
+    shouldBe(&quot;key.algorithm.length&quot;, &quot;1024&quot;);
+    shouldBe(&quot;key.algorithm.hash.name&quot;, &quot;'SHA-512'&quot;);
+    shouldBe(&quot;key.usages&quot;, '[&quot;sign&quot;, &quot;verify&quot;]');
+
+    finishJSTest();
+});
+&lt;/script&gt;
+
+&lt;script src=&quot;../../resources/js-test-post.js&quot;&gt;&lt;/script&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestscryptosubtlersageneratekeymalformedparametersexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/crypto/subtle/rsa-generate-key-malformed-parameters-expected.txt (0 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/subtle/rsa-generate-key-malformed-parameters-expected.txt                                (rev 0)
+++ trunk/LayoutTests/crypto/subtle/rsa-generate-key-malformed-parameters-expected.txt        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -0,0 +1,40 @@
</span><ins>+Test generating an RSA key with malformed-paramters.
+
+On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
+
+
+PASS crypto.subtle.generateKey(&quot;RSAES-PKCS1-v1_5&quot;, extractable, [&quot;encrypt&quot;, &quot;decrypt&quot;]) rejected promise  with TypeError: Member RsaKeyGenParams.modulusLength is required and must be an instance of unsigned long.
+PASS crypto.subtle.generateKey({name: &quot;RSAES-PKCS1-v1_5&quot;}, extractable, [&quot;encrypt&quot;, &quot;decrypt&quot;]) rejected promise  with TypeError: Member RsaKeyGenParams.modulusLength is required and must be an instance of unsigned long.
+PASS crypto.subtle.generateKey({name: &quot;RSAES-PKCS1-v1_5&quot;, modulusLength: undefined, publicExponent: publicExponent}, extractable, [&quot;encrypt&quot;, &quot;decrypt&quot;]) rejected promise  with TypeError: Member RsaKeyGenParams.modulusLength is required and must be an instance of unsigned long.
+PASS crypto.subtle.generateKey({name: &quot;RSAES-PKCS1-v1_5&quot;, modulusLength: Symbol(), publicExponent: publicExponent}, extractable, [&quot;encrypt&quot;, &quot;decrypt&quot;]) rejected promise  with TypeError: Cannot convert a symbol to a number.
+PASS crypto.subtle.generateKey({name: &quot;RSAES-PKCS1-v1_5&quot;, modulusLength: 2048, publicExponent: 1}, extractable, [&quot;encrypt&quot;, &quot;decrypt&quot;]) rejected promise  with TypeError: Type error.
+PASS crypto.subtle.generateKey({name: &quot;RSAES-PKCS1-v1_5&quot;, modulusLength: 2048, publicExponent: true}, extractable, [&quot;encrypt&quot;, &quot;decrypt&quot;]) rejected promise  with TypeError: Type error.
+PASS crypto.subtle.generateKey({name: &quot;RSAES-PKCS1-v1_5&quot;, modulusLength: 2048, publicExponent: null}, extractable, [&quot;encrypt&quot;, &quot;decrypt&quot;]) rejected promise  with TypeError: Type error.
+PASS crypto.subtle.generateKey({name: &quot;RSAES-PKCS1-v1_5&quot;, modulusLength: 2048, publicExponent: undefined}, extractable, [&quot;encrypt&quot;, &quot;decrypt&quot;]) rejected promise  with TypeError: Member RsaKeyGenParams.publicExponent is required and must be an instance of Uint8Array.
+PASS crypto.subtle.generateKey({name: &quot;RSAES-PKCS1-v1_5&quot;, modulusLength: 2048, publicExponent: { }}, extractable, [&quot;encrypt&quot;, &quot;decrypt&quot;]) rejected promise  with TypeError: Type error.
+PASS crypto.subtle.generateKey({name: &quot;RSAES-PKCS1-v1_5&quot;, modulusLength: 2048, publicExponent: Symbol()}, extractable, [&quot;encrypt&quot;, &quot;decrypt&quot;]) rejected promise  with TypeError: Type error.
+PASS crypto.subtle.generateKey({name: &quot;RSAES-PKCS1-v1_5&quot;, modulusLength: 2048, publicExponent: &quot;foo&quot;}, extractable, [&quot;encrypt&quot;, &quot;decrypt&quot;]) rejected promise  with TypeError: Type error.
+PASS crypto.subtle.generateKey({name: &quot;RSAES-PKCS1-v1_5&quot;, modulusLength: 2048, publicExponent: [ ]}, extractable, [&quot;encrypt&quot;, &quot;decrypt&quot;]) rejected promise  with TypeError: Type error.
+PASS crypto.subtle.generateKey({name: &quot;RSASSA-PKCS1-v1_5&quot;, modulusLength: 2048, publicExponent: publicExponent}, extractable, [&quot;sign&quot;, &quot;verify&quot;]) rejected promise  with TypeError: Member RsaHashedKeyGenParams.hash is required and must be an instance of any.
+PASS crypto.subtle.generateKey({name: &quot;RSA-OAEP&quot;, modulusLength: 2048, publicExponent: publicExponent}, extractable, [&quot;decrypt&quot;, &quot;encrypt&quot;]) rejected promise  with TypeError: Member RsaHashedKeyGenParams.hash is required and must be an instance of any.
+PASS crypto.subtle.generateKey({name: &quot;RSAES-PKCS1-v1_5&quot;, modulusLength: 2048, publicExponent: publicExponent}, extractable, [&quot;sign&quot;]) rejected promise  with SyntaxError (DOM Exception 12): A required parameter was missing or out-of-range.
+PASS crypto.subtle.generateKey({name: &quot;RSAES-PKCS1-v1_5&quot;, modulusLength: 2048, publicExponent: publicExponent}, extractable, [&quot;verify&quot;]) rejected promise  with SyntaxError (DOM Exception 12): A required parameter was missing or out-of-range.
+PASS crypto.subtle.generateKey({name: &quot;RSAES-PKCS1-v1_5&quot;, modulusLength: 2048, publicExponent: publicExponent}, extractable, [&quot;deriveKey&quot;]) rejected promise  with SyntaxError (DOM Exception 12): A required parameter was missing or out-of-range.
+PASS crypto.subtle.generateKey({name: &quot;RSAES-PKCS1-v1_5&quot;, modulusLength: 2048, publicExponent: publicExponent}, extractable, [&quot;deriveBits&quot;]) rejected promise  with SyntaxError (DOM Exception 12): A required parameter was missing or out-of-range.
+PASS crypto.subtle.generateKey({name: &quot;RSAES-PKCS1-v1_5&quot;, modulusLength: 2048, publicExponent: publicExponent}, extractable, [&quot;wrapKey&quot;]) rejected promise  with SyntaxError (DOM Exception 12): A required parameter was missing or out-of-range.
+PASS crypto.subtle.generateKey({name: &quot;RSAES-PKCS1-v1_5&quot;, modulusLength: 2048, publicExponent: publicExponent}, extractable, [&quot;unwrapKey&quot;]) rejected promise  with SyntaxError (DOM Exception 12): A required parameter was missing or out-of-range.
+PASS crypto.subtle.generateKey({name: &quot;RSASSA-PKCS1-v1_5&quot;, modulusLength: 2048, publicExponent: publicExponent, hash: &quot;sha-1&quot;}, extractable, [&quot;encrypt&quot;]) rejected promise  with SyntaxError (DOM Exception 12): A required parameter was missing or out-of-range.
+PASS crypto.subtle.generateKey({name: &quot;RSASSA-PKCS1-v1_5&quot;, modulusLength: 2048, publicExponent: publicExponent, hash: &quot;sha-1&quot;}, extractable, [&quot;decrypt&quot;]) rejected promise  with SyntaxError (DOM Exception 12): A required parameter was missing or out-of-range.
+PASS crypto.subtle.generateKey({name: &quot;RSASSA-PKCS1-v1_5&quot;, modulusLength: 2048, publicExponent: publicExponent, hash: &quot;sha-1&quot;}, extractable, [&quot;deriveKey&quot;]) rejected promise  with SyntaxError (DOM Exception 12): A required parameter was missing or out-of-range.
+PASS crypto.subtle.generateKey({name: &quot;RSASSA-PKCS1-v1_5&quot;, modulusLength: 2048, publicExponent: publicExponent, hash: &quot;sha-1&quot;}, extractable, [&quot;deriveBits&quot;]) rejected promise  with SyntaxError (DOM Exception 12): A required parameter was missing or out-of-range.
+PASS crypto.subtle.generateKey({name: &quot;RSASSA-PKCS1-v1_5&quot;, modulusLength: 2048, publicExponent: publicExponent, hash: &quot;sha-1&quot;}, extractable, [&quot;wrapKey&quot;]) rejected promise  with SyntaxError (DOM Exception 12): A required parameter was missing or out-of-range.
+PASS crypto.subtle.generateKey({name: &quot;RSASSA-PKCS1-v1_5&quot;, modulusLength: 2048, publicExponent: publicExponent, hash: &quot;sha-1&quot;}, extractable, [&quot;unwrapKey&quot;]) rejected promise  with SyntaxError (DOM Exception 12): A required parameter was missing or out-of-range.
+PASS crypto.subtle.generateKey({name: &quot;RSA-OAEP&quot;, modulusLength: 2048, publicExponent: publicExponent, hash: &quot;sha-1&quot;}, extractable, [&quot;sign&quot;]) rejected promise  with SyntaxError (DOM Exception 12): A required parameter was missing or out-of-range.
+PASS crypto.subtle.generateKey({name: &quot;RSA-OAEP&quot;, modulusLength: 2048, publicExponent: publicExponent, hash: &quot;sha-1&quot;}, extractable, [&quot;verify&quot;]) rejected promise  with SyntaxError (DOM Exception 12): A required parameter was missing or out-of-range.
+PASS crypto.subtle.generateKey({name: &quot;RSA-OAEP&quot;, modulusLength: 2048, publicExponent: publicExponent, hash: &quot;sha-1&quot;}, extractable, [&quot;deriveKey&quot;]) rejected promise  with SyntaxError (DOM Exception 12): A required parameter was missing or out-of-range.
+PASS crypto.subtle.generateKey({name: &quot;RSA-OAEP&quot;, modulusLength: 2048, publicExponent: publicExponent, hash: &quot;sha-1&quot;}, extractable, [&quot;deriveBits&quot;]) rejected promise  with SyntaxError (DOM Exception 12): A required parameter was missing or out-of-range.
+PASS crypto.subtle.generateKey({name: &quot;RSASSA-PKCS1-v1_5&quot;, modulusLength: 0, publicExponent: publicExponent, hash: &quot;sha-1&quot;}, extractable, [&quot;sign&quot;, &quot;verify&quot;]) rejected promise  with OperationError (DOM Exception 34): The operation failed for an operation-specific reason.
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
</ins></span></pre></div>
<a id="trunkLayoutTestscryptosubtlersageneratekeymalformedparametershtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/crypto/subtle/rsa-generate-key-malformed-parameters.html (0 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/subtle/rsa-generate-key-malformed-parameters.html                                (rev 0)
+++ trunk/LayoutTests/crypto/subtle/rsa-generate-key-malformed-parameters.html        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -0,0 +1,58 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;html&gt;
+&lt;head&gt;
+&lt;script src=&quot;../../resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../resources/common.js&quot;&gt;&lt;/script&gt;
+&lt;/head&gt;
+&lt;body&gt;
+&lt;p id=&quot;description&quot;&gt;&lt;/p&gt;
+&lt;div id=&quot;console&quot;&gt;&lt;/div&gt;
+
+&lt;script&gt;
+description(&quot;Test generating an RSA key with malformed-paramters.&quot;);
+
+jsTestIsAsync = true;
+
+var extractable = true;
+var publicExponent = new Uint8Array([0x01, 0x00, 0x01]);
+
+// Malformed AlgorithmIdentifiers
+shouldReject('crypto.subtle.generateKey(&quot;RSAES-PKCS1-v1_5&quot;, extractable, [&quot;encrypt&quot;, &quot;decrypt&quot;])');
+shouldReject('crypto.subtle.generateKey({name: &quot;RSAES-PKCS1-v1_5&quot;}, extractable, [&quot;encrypt&quot;, &quot;decrypt&quot;])');
+shouldReject('crypto.subtle.generateKey({name: &quot;RSAES-PKCS1-v1_5&quot;, modulusLength: undefined, publicExponent: publicExponent}, extractable, [&quot;encrypt&quot;, &quot;decrypt&quot;])');
+shouldReject('crypto.subtle.generateKey({name: &quot;RSAES-PKCS1-v1_5&quot;, modulusLength: Symbol(), publicExponent: publicExponent}, extractable, [&quot;encrypt&quot;, &quot;decrypt&quot;])');
+shouldReject('crypto.subtle.generateKey({name: &quot;RSAES-PKCS1-v1_5&quot;, modulusLength: 2048, publicExponent: 1}, extractable, [&quot;encrypt&quot;, &quot;decrypt&quot;])');
+shouldReject('crypto.subtle.generateKey({name: &quot;RSAES-PKCS1-v1_5&quot;, modulusLength: 2048, publicExponent: true}, extractable, [&quot;encrypt&quot;, &quot;decrypt&quot;])');
+shouldReject('crypto.subtle.generateKey({name: &quot;RSAES-PKCS1-v1_5&quot;, modulusLength: 2048, publicExponent: null}, extractable, [&quot;encrypt&quot;, &quot;decrypt&quot;])');
+shouldReject('crypto.subtle.generateKey({name: &quot;RSAES-PKCS1-v1_5&quot;, modulusLength: 2048, publicExponent: undefined}, extractable, [&quot;encrypt&quot;, &quot;decrypt&quot;])');
+shouldReject('crypto.subtle.generateKey({name: &quot;RSAES-PKCS1-v1_5&quot;, modulusLength: 2048, publicExponent: { }}, extractable, [&quot;encrypt&quot;, &quot;decrypt&quot;])');
+shouldReject('crypto.subtle.generateKey({name: &quot;RSAES-PKCS1-v1_5&quot;, modulusLength: 2048, publicExponent: Symbol()}, extractable, [&quot;encrypt&quot;, &quot;decrypt&quot;])');
+shouldReject('crypto.subtle.generateKey({name: &quot;RSAES-PKCS1-v1_5&quot;, modulusLength: 2048, publicExponent: &quot;foo&quot;}, extractable, [&quot;encrypt&quot;, &quot;decrypt&quot;])');
+shouldReject('crypto.subtle.generateKey({name: &quot;RSAES-PKCS1-v1_5&quot;, modulusLength: 2048, publicExponent: [ ]}, extractable, [&quot;encrypt&quot;, &quot;decrypt&quot;])');
+// Missing hash
+shouldReject('crypto.subtle.generateKey({name: &quot;RSASSA-PKCS1-v1_5&quot;, modulusLength: 2048, publicExponent: publicExponent}, extractable, [&quot;sign&quot;, &quot;verify&quot;])');
+shouldReject('crypto.subtle.generateKey({name: &quot;RSA-OAEP&quot;, modulusLength: 2048, publicExponent: publicExponent}, extractable, [&quot;decrypt&quot;, &quot;encrypt&quot;])');
+// Wrong usages
+shouldReject('crypto.subtle.generateKey({name: &quot;RSAES-PKCS1-v1_5&quot;, modulusLength: 2048, publicExponent: publicExponent}, extractable, [&quot;sign&quot;])');
+shouldReject('crypto.subtle.generateKey({name: &quot;RSAES-PKCS1-v1_5&quot;, modulusLength: 2048, publicExponent: publicExponent}, extractable, [&quot;verify&quot;])');
+shouldReject('crypto.subtle.generateKey({name: &quot;RSAES-PKCS1-v1_5&quot;, modulusLength: 2048, publicExponent: publicExponent}, extractable, [&quot;deriveKey&quot;])');
+shouldReject('crypto.subtle.generateKey({name: &quot;RSAES-PKCS1-v1_5&quot;, modulusLength: 2048, publicExponent: publicExponent}, extractable, [&quot;deriveBits&quot;])');
+shouldReject('crypto.subtle.generateKey({name: &quot;RSAES-PKCS1-v1_5&quot;, modulusLength: 2048, publicExponent: publicExponent}, extractable, [&quot;wrapKey&quot;])');
+shouldReject('crypto.subtle.generateKey({name: &quot;RSAES-PKCS1-v1_5&quot;, modulusLength: 2048, publicExponent: publicExponent}, extractable, [&quot;unwrapKey&quot;])');
+shouldReject('crypto.subtle.generateKey({name: &quot;RSASSA-PKCS1-v1_5&quot;, modulusLength: 2048, publicExponent: publicExponent, hash: &quot;sha-1&quot;}, extractable, [&quot;encrypt&quot;])');
+shouldReject('crypto.subtle.generateKey({name: &quot;RSASSA-PKCS1-v1_5&quot;, modulusLength: 2048, publicExponent: publicExponent, hash: &quot;sha-1&quot;}, extractable, [&quot;decrypt&quot;])');
+shouldReject('crypto.subtle.generateKey({name: &quot;RSASSA-PKCS1-v1_5&quot;, modulusLength: 2048, publicExponent: publicExponent, hash: &quot;sha-1&quot;}, extractable, [&quot;deriveKey&quot;])');
+shouldReject('crypto.subtle.generateKey({name: &quot;RSASSA-PKCS1-v1_5&quot;, modulusLength: 2048, publicExponent: publicExponent, hash: &quot;sha-1&quot;}, extractable, [&quot;deriveBits&quot;])');
+shouldReject('crypto.subtle.generateKey({name: &quot;RSASSA-PKCS1-v1_5&quot;, modulusLength: 2048, publicExponent: publicExponent, hash: &quot;sha-1&quot;}, extractable, [&quot;wrapKey&quot;])');
+shouldReject('crypto.subtle.generateKey({name: &quot;RSASSA-PKCS1-v1_5&quot;, modulusLength: 2048, publicExponent: publicExponent, hash: &quot;sha-1&quot;}, extractable, [&quot;unwrapKey&quot;])');
+shouldReject('crypto.subtle.generateKey({name: &quot;RSA-OAEP&quot;, modulusLength: 2048, publicExponent: publicExponent, hash: &quot;sha-1&quot;}, extractable, [&quot;sign&quot;])');
+shouldReject('crypto.subtle.generateKey({name: &quot;RSA-OAEP&quot;, modulusLength: 2048, publicExponent: publicExponent, hash: &quot;sha-1&quot;}, extractable, [&quot;verify&quot;])');
+shouldReject('crypto.subtle.generateKey({name: &quot;RSA-OAEP&quot;, modulusLength: 2048, publicExponent: publicExponent, hash: &quot;sha-1&quot;}, extractable, [&quot;deriveKey&quot;])');
+shouldReject('crypto.subtle.generateKey({name: &quot;RSA-OAEP&quot;, modulusLength: 2048, publicExponent: publicExponent, hash: &quot;sha-1&quot;}, extractable, [&quot;deriveBits&quot;])');
+// modulusLength = 0
+shouldReject('crypto.subtle.generateKey({name: &quot;RSASSA-PKCS1-v1_5&quot;, modulusLength: 0, publicExponent: publicExponent, hash: &quot;sha-1&quot;}, extractable, [&quot;sign&quot;, &quot;verify&quot;])', finishJSTest);
+&lt;/script&gt;
+
+&lt;script src=&quot;../../resources/js-test-post.js&quot;&gt;&lt;/script&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestscryptosubtlersaoaepgeneratekeyexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/crypto/subtle/rsa-oaep-generate-key-expected.txt (0 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/subtle/rsa-oaep-generate-key-expected.txt                                (rev 0)
+++ trunk/LayoutTests/crypto/subtle/rsa-oaep-generate-key-expected.txt        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -0,0 +1,25 @@
</span><ins>+Test generating an RSA key using RSA-OAEP algorithm.
+
+On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
+
+
+Generating a key pair...
+PASS keyPair.toString() is '[object CryptoKeyPair]'
+PASS keyPair.publicKey.type is 'public'
+PASS keyPair.publicKey.extractable is true
+PASS keyPair.publicKey.algorithm.name is 'RSA-OAEP'
+PASS keyPair.publicKey.algorithm.modulusLength is 2048
+PASS bytesToHexString(keyPair.publicKey.algorithm.publicExponent) is '010001'
+PASS keyPair.publicKey.algorithm.hash.name is 'SHA-1'
+PASS keyPair.publicKey.usages is ['encrypt', 'wrapKey']
+PASS keyPair.privateKey.type is 'private'
+PASS keyPair.privateKey.extractable is false
+PASS keyPair.privateKey.algorithm.name is 'RSA-OAEP'
+PASS keyPair.privateKey.algorithm.modulusLength is 2048
+PASS bytesToHexString(keyPair.privateKey.algorithm.publicExponent) is '010001'
+PASS keyPair.privateKey.algorithm.hash.name is 'SHA-1'
+PASS keyPair.privateKey.usages is ['decrypt', 'unwrapKey']
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
</ins></span></pre></div>
<a id="trunkLayoutTestscryptosubtlersaoaepgeneratekeyhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/crypto/subtle/rsa-oaep-generate-key.html (0 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/subtle/rsa-oaep-generate-key.html                                (rev 0)
+++ trunk/LayoutTests/crypto/subtle/rsa-oaep-generate-key.html        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -0,0 +1,50 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;html&gt;
+&lt;head&gt;
+&lt;script src=&quot;../../resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../resources/common.js&quot;&gt;&lt;/script&gt;
+&lt;/head&gt;
+&lt;body&gt;
+&lt;p id=&quot;description&quot;&gt;&lt;/p&gt;
+&lt;div id=&quot;console&quot;&gt;&lt;/div&gt;
+
+&lt;script&gt;
+description(&quot;Test generating an RSA key using RSA-OAEP algorithm.&quot;);
+
+jsTestIsAsync = true;
+
+var algorithmKeyGen = {
+    name: &quot;RSA-OAEP&quot;,
+    // RsaKeyGenParams
+    modulusLength: 2048,
+    publicExponent: new Uint8Array([0x01, 0x00, 0x01]),  // Equivalent to 65537
+    hash: &quot;sha-1&quot;
+};
+var nonExtractable = false;
+
+debug(&quot;Generating a key pair...&quot;);
+crypto.subtle.generateKey(algorithmKeyGen, nonExtractable, [&quot;decrypt&quot;, &quot;encrypt&quot;, &quot;wrapKey&quot;, &quot;unwrapKey&quot;]).then(function(result) {
+    keyPair = result;
+    shouldBe(&quot;keyPair.toString()&quot;, &quot;'[object CryptoKeyPair]'&quot;);
+    shouldBe(&quot;keyPair.publicKey.type&quot;, &quot;'public'&quot;);
+    shouldBe(&quot;keyPair.publicKey.extractable&quot;, &quot;true&quot;);
+    shouldBe(&quot;keyPair.publicKey.algorithm.name&quot;, &quot;'RSA-OAEP'&quot;);
+    shouldBe(&quot;keyPair.publicKey.algorithm.modulusLength&quot;, &quot;2048&quot;);
+    shouldBe(&quot;bytesToHexString(keyPair.publicKey.algorithm.publicExponent)&quot;, &quot;'010001'&quot;);
+    shouldBe(&quot;keyPair.publicKey.algorithm.hash.name&quot;, &quot;'SHA-1'&quot;);
+    shouldBe(&quot;keyPair.publicKey.usages&quot;, &quot;['encrypt', 'wrapKey']&quot;);
+    shouldBe(&quot;keyPair.privateKey.type&quot;, &quot;'private'&quot;);
+    shouldBe(&quot;keyPair.privateKey.extractable&quot;, &quot;false&quot;);
+    shouldBe(&quot;keyPair.privateKey.algorithm.name&quot;, &quot;'RSA-OAEP'&quot;);
+    shouldBe(&quot;keyPair.privateKey.algorithm.modulusLength&quot;, &quot;2048&quot;);
+    shouldBe(&quot;bytesToHexString(keyPair.privateKey.algorithm.publicExponent)&quot;, &quot;'010001'&quot;);
+    shouldBe(&quot;keyPair.privateKey.algorithm.hash.name&quot;, &quot;'SHA-1'&quot;);
+    shouldBe(&quot;keyPair.privateKey.usages&quot;, &quot;['decrypt', 'unwrapKey']&quot;);
+
+    finishJSTest();
+});
+&lt;/script&gt;
+
+&lt;script src=&quot;../../resources/js-test-post.js&quot;&gt;&lt;/script&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestscryptosubtlersaespkcs1v1_5generatekeyexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/crypto/subtle/rsaes-pkcs1-v1_5-generate-key-expected.txt (0 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/subtle/rsaes-pkcs1-v1_5-generate-key-expected.txt                                (rev 0)
+++ trunk/LayoutTests/crypto/subtle/rsaes-pkcs1-v1_5-generate-key-expected.txt        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -0,0 +1,25 @@
</span><ins>+Test generating an RSA key using RSAES-PKCS1-v1_5 algorithm.
+
+On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
+
+
+Generating a key pair...
+PASS keyPair.toString() is '[object CryptoKeyPair]'
+PASS keyPair.publicKey.type is 'public'
+PASS keyPair.publicKey.extractable is true
+PASS keyPair.publicKey.algorithm.name is 'RSAES-PKCS1-v1_5'
+PASS keyPair.publicKey.algorithm.modulusLength is 2048
+PASS bytesToHexString(keyPair.publicKey.algorithm.publicExponent) is '010001'
+PASS keyPair.publicKey.algorithm.hash is undefined.
+PASS keyPair.publicKey.usages is ['encrypt']
+PASS keyPair.privateKey.type is 'private'
+PASS keyPair.privateKey.extractable is false
+PASS keyPair.privateKey.algorithm.name is 'RSAES-PKCS1-v1_5'
+PASS keyPair.privateKey.algorithm.modulusLength is 2048
+PASS bytesToHexString(keyPair.privateKey.algorithm.publicExponent) is '010001'
+PASS keyPair.privateKey.algorithm.hash is undefined.
+PASS keyPair.privateKey.usages is ['decrypt']
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
</ins></span></pre></div>
<a id="trunkLayoutTestscryptosubtlersaespkcs1v1_5generatekeyextractableexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/crypto/subtle/rsaes-pkcs1-v1_5-generate-key-extractable-expected.txt (0 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/subtle/rsaes-pkcs1-v1_5-generate-key-extractable-expected.txt                                (rev 0)
+++ trunk/LayoutTests/crypto/subtle/rsaes-pkcs1-v1_5-generate-key-extractable-expected.txt        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -0,0 +1,25 @@
</span><ins>+Test generating an RSA key using RSAES-PKCS1-v1_5 algorithm.
+
+On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
+
+
+Generating a key pair...
+PASS keyPair.toString() is '[object CryptoKeyPair]'
+PASS keyPair.publicKey.type is 'public'
+PASS keyPair.publicKey.extractable is true
+PASS keyPair.publicKey.algorithm.name is 'RSAES-PKCS1-v1_5'
+PASS keyPair.publicKey.algorithm.modulusLength is 2048
+PASS bytesToHexString(keyPair.publicKey.algorithm.publicExponent) is '010001'
+PASS keyPair.publicKey.algorithm.hash is undefined.
+PASS keyPair.publicKey.usages is ['encrypt']
+PASS keyPair.privateKey.type is 'private'
+PASS keyPair.privateKey.extractable is true
+PASS keyPair.privateKey.algorithm.name is 'RSAES-PKCS1-v1_5'
+PASS keyPair.privateKey.algorithm.modulusLength is 2048
+PASS bytesToHexString(keyPair.privateKey.algorithm.publicExponent) is '010001'
+PASS keyPair.privateKey.algorithm.hash is undefined.
+PASS keyPair.privateKey.usages is ['decrypt']
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
</ins></span></pre></div>
<a id="trunkLayoutTestscryptosubtlersaespkcs1v1_5generatekeyextractablehtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/crypto/subtle/rsaes-pkcs1-v1_5-generate-key-extractable.html (0 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/subtle/rsaes-pkcs1-v1_5-generate-key-extractable.html                                (rev 0)
+++ trunk/LayoutTests/crypto/subtle/rsaes-pkcs1-v1_5-generate-key-extractable.html        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -0,0 +1,49 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;html&gt;
+&lt;head&gt;
+&lt;script src=&quot;../../resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../resources/common.js&quot;&gt;&lt;/script&gt;
+&lt;/head&gt;
+&lt;body&gt;
+&lt;p id=&quot;description&quot;&gt;&lt;/p&gt;
+&lt;div id=&quot;console&quot;&gt;&lt;/div&gt;
+
+&lt;script&gt;
+description(&quot;Test generating an RSA key using RSAES-PKCS1-v1_5 algorithm.&quot;);
+
+jsTestIsAsync = true;
+
+var algorithmKeyGen = {
+    name: &quot;RSAES-PKCS1-v1_5&quot;,
+    // RsaKeyGenParams
+    modulusLength: 2048,
+    publicExponent: new Uint8Array([0x01, 0x00, 0x01]),  // Equivalent to 65537
+};
+var extractable = true;
+
+debug(&quot;Generating a key pair...&quot;);
+crypto.subtle.generateKey(algorithmKeyGen, extractable, [&quot;decrypt&quot;, &quot;encrypt&quot;]).then(function(result) {
+    keyPair = result;
+    shouldBe(&quot;keyPair.toString()&quot;, &quot;'[object CryptoKeyPair]'&quot;);
+    shouldBe(&quot;keyPair.publicKey.type&quot;, &quot;'public'&quot;);
+    shouldBe(&quot;keyPair.publicKey.extractable&quot;, &quot;true&quot;);
+    shouldBe(&quot;keyPair.publicKey.algorithm.name&quot;, &quot;'RSAES-PKCS1-v1_5'&quot;);
+    shouldBe(&quot;keyPair.publicKey.algorithm.modulusLength&quot;, &quot;2048&quot;);
+    shouldBe(&quot;bytesToHexString(keyPair.publicKey.algorithm.publicExponent)&quot;, &quot;'010001'&quot;);
+    shouldBeUndefined(&quot;keyPair.publicKey.algorithm.hash&quot;);
+    shouldBe(&quot;keyPair.publicKey.usages&quot;, &quot;['encrypt']&quot;);
+    shouldBe(&quot;keyPair.privateKey.type&quot;, &quot;'private'&quot;);
+    shouldBe(&quot;keyPair.privateKey.extractable&quot;, &quot;true&quot;);
+    shouldBe(&quot;keyPair.privateKey.algorithm.name&quot;, &quot;'RSAES-PKCS1-v1_5'&quot;);
+    shouldBe(&quot;keyPair.privateKey.algorithm.modulusLength&quot;, &quot;2048&quot;);
+    shouldBe(&quot;bytesToHexString(keyPair.privateKey.algorithm.publicExponent)&quot;, &quot;'010001'&quot;);
+    shouldBeUndefined(&quot;keyPair.privateKey.algorithm.hash&quot;);
+    shouldBe(&quot;keyPair.privateKey.usages&quot;, &quot;['decrypt']&quot;);
+
+    finishJSTest();
+});
+&lt;/script&gt;
+
+&lt;script src=&quot;../../resources/js-test-post.js&quot;&gt;&lt;/script&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestscryptosubtlersaespkcs1v1_5generatekeyhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/crypto/subtle/rsaes-pkcs1-v1_5-generate-key.html (0 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/subtle/rsaes-pkcs1-v1_5-generate-key.html                                (rev 0)
+++ trunk/LayoutTests/crypto/subtle/rsaes-pkcs1-v1_5-generate-key.html        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -0,0 +1,49 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;html&gt;
+&lt;head&gt;
+&lt;script src=&quot;../../resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../resources/common.js&quot;&gt;&lt;/script&gt;
+&lt;/head&gt;
+&lt;body&gt;
+&lt;p id=&quot;description&quot;&gt;&lt;/p&gt;
+&lt;div id=&quot;console&quot;&gt;&lt;/div&gt;
+
+&lt;script&gt;
+description(&quot;Test generating an RSA key using RSAES-PKCS1-v1_5 algorithm.&quot;);
+
+jsTestIsAsync = true;
+
+var algorithmKeyGen = {
+    name: &quot;RSAES-PKCS1-v1_5&quot;,
+    // RsaKeyGenParams
+    modulusLength: 2048,
+    publicExponent: new Uint8Array([0x01, 0x00, 0x01]),  // Equivalent to 65537
+};
+var nonExtractable = false;
+
+debug(&quot;Generating a key pair...&quot;);
+crypto.subtle.generateKey(algorithmKeyGen, nonExtractable, [&quot;decrypt&quot;, &quot;encrypt&quot;]).then(function(result) {
+    keyPair = result;
+    shouldBe(&quot;keyPair.toString()&quot;, &quot;'[object CryptoKeyPair]'&quot;);
+    shouldBe(&quot;keyPair.publicKey.type&quot;, &quot;'public'&quot;);
+    shouldBe(&quot;keyPair.publicKey.extractable&quot;, &quot;true&quot;);
+    shouldBe(&quot;keyPair.publicKey.algorithm.name&quot;, &quot;'RSAES-PKCS1-v1_5'&quot;);
+    shouldBe(&quot;keyPair.publicKey.algorithm.modulusLength&quot;, &quot;2048&quot;);
+    shouldBe(&quot;bytesToHexString(keyPair.publicKey.algorithm.publicExponent)&quot;, &quot;'010001'&quot;);
+    shouldBeUndefined(&quot;keyPair.publicKey.algorithm.hash&quot;);
+    shouldBe(&quot;keyPair.publicKey.usages&quot;, &quot;['encrypt']&quot;);
+    shouldBe(&quot;keyPair.privateKey.type&quot;, &quot;'private'&quot;);
+    shouldBe(&quot;keyPair.privateKey.extractable&quot;, &quot;false&quot;);
+    shouldBe(&quot;keyPair.privateKey.algorithm.name&quot;, &quot;'RSAES-PKCS1-v1_5'&quot;);
+    shouldBe(&quot;keyPair.privateKey.algorithm.modulusLength&quot;, &quot;2048&quot;);
+    shouldBe(&quot;bytesToHexString(keyPair.privateKey.algorithm.publicExponent)&quot;, &quot;'010001'&quot;);
+    shouldBeUndefined(&quot;keyPair.privateKey.algorithm.hash&quot;);
+    shouldBe(&quot;keyPair.privateKey.usages&quot;, &quot;['decrypt']&quot;);
+
+    finishJSTest();
+});
+&lt;/script&gt;
+
+&lt;script src=&quot;../../resources/js-test-post.js&quot;&gt;&lt;/script&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestscryptosubtlersassapkcs1v1_5generatekeyexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/crypto/subtle/rsassa-pkcs1-v1_5-generate-key-expected.txt (0 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/subtle/rsassa-pkcs1-v1_5-generate-key-expected.txt                                (rev 0)
+++ trunk/LayoutTests/crypto/subtle/rsassa-pkcs1-v1_5-generate-key-expected.txt        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -0,0 +1,25 @@
</span><ins>+Test generating an RSA key using RSASSA-PKCS1-v1_5 algorithm.
+
+On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
+
+
+Generating a key pair...
+PASS keyPair.toString() is '[object CryptoKeyPair]'
+PASS keyPair.publicKey.type is 'public'
+PASS keyPair.publicKey.extractable is true
+PASS keyPair.publicKey.algorithm.name is 'RSASSA-PKCS1-v1_5'
+PASS keyPair.publicKey.algorithm.modulusLength is 2048
+PASS bytesToHexString(keyPair.publicKey.algorithm.publicExponent) is '010001'
+PASS keyPair.publicKey.algorithm.hash.name is 'SHA-1'
+PASS keyPair.publicKey.usages is ['verify']
+PASS keyPair.privateKey.type is 'private'
+PASS keyPair.privateKey.extractable is false
+PASS keyPair.privateKey.algorithm.name is 'RSASSA-PKCS1-v1_5'
+PASS keyPair.privateKey.algorithm.modulusLength is 2048
+PASS bytesToHexString(keyPair.privateKey.algorithm.publicExponent) is '010001'
+PASS keyPair.privateKey.algorithm.hash.name is 'SHA-1'
+PASS keyPair.privateKey.usages is ['sign']
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
</ins></span></pre></div>
<a id="trunkLayoutTestscryptosubtlersassapkcs1v1_5generatekeyhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/crypto/subtle/rsassa-pkcs1-v1_5-generate-key.html (0 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/subtle/rsassa-pkcs1-v1_5-generate-key.html                                (rev 0)
+++ trunk/LayoutTests/crypto/subtle/rsassa-pkcs1-v1_5-generate-key.html        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -0,0 +1,50 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;html&gt;
+&lt;head&gt;
+&lt;script src=&quot;../../resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../resources/common.js&quot;&gt;&lt;/script&gt;
+&lt;/head&gt;
+&lt;body&gt;
+&lt;p id=&quot;description&quot;&gt;&lt;/p&gt;
+&lt;div id=&quot;console&quot;&gt;&lt;/div&gt;
+
+&lt;script&gt;
+description(&quot;Test generating an RSA key using RSASSA-PKCS1-v1_5 algorithm.&quot;);
+
+jsTestIsAsync = true;
+
+var algorithmKeyGen = {
+    name: &quot;RSASSA-PKCS1-v1_5&quot;,
+    // RsaKeyGenParams
+    modulusLength: 2048,
+    publicExponent: new Uint8Array([0x01, 0x00, 0x01]),  // Equivalent to 65537
+    hash: &quot;sha-1&quot;,
+};
+var nonExtractable = false;
+
+debug(&quot;Generating a key pair...&quot;);
+crypto.subtle.generateKey(algorithmKeyGen, nonExtractable, [&quot;sign&quot;, &quot;verify&quot;]).then(function(result) {
+    keyPair = result;
+    shouldBe(&quot;keyPair.toString()&quot;, &quot;'[object CryptoKeyPair]'&quot;);
+    shouldBe(&quot;keyPair.publicKey.type&quot;, &quot;'public'&quot;);
+    shouldBe(&quot;keyPair.publicKey.extractable&quot;, &quot;true&quot;);
+    shouldBe(&quot;keyPair.publicKey.algorithm.name&quot;, &quot;'RSASSA-PKCS1-v1_5'&quot;);
+    shouldBe(&quot;keyPair.publicKey.algorithm.modulusLength&quot;, &quot;2048&quot;);
+    shouldBe(&quot;bytesToHexString(keyPair.publicKey.algorithm.publicExponent)&quot;, &quot;'010001'&quot;);
+    shouldBe(&quot;keyPair.publicKey.algorithm.hash.name&quot;, &quot;'SHA-1'&quot;);
+    shouldBe(&quot;keyPair.publicKey.usages&quot;, &quot;['verify']&quot;);
+    shouldBe(&quot;keyPair.privateKey.type&quot;, &quot;'private'&quot;);
+    shouldBe(&quot;keyPair.privateKey.extractable&quot;, &quot;false&quot;);
+    shouldBe(&quot;keyPair.privateKey.algorithm.name&quot;, &quot;'RSASSA-PKCS1-v1_5'&quot;);
+    shouldBe(&quot;keyPair.privateKey.algorithm.modulusLength&quot;, &quot;2048&quot;);
+    shouldBe(&quot;bytesToHexString(keyPair.privateKey.algorithm.publicExponent)&quot;, &quot;'010001'&quot;);
+    shouldBe(&quot;keyPair.privateKey.algorithm.hash.name&quot;, &quot;'SHA-1'&quot;);
+    shouldBe(&quot;keyPair.privateKey.usages&quot;, &quot;['sign']&quot;);
+
+    finishJSTest();
+});
+&lt;/script&gt;
+
+&lt;script src=&quot;../../resources/js-test-post.js&quot;&gt;&lt;/script&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestscryptowebkitSubtlehmacgeneratekeyexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/crypto/webkitSubtle/hmac-generate-key-expected.txt (207808 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/webkitSubtle/hmac-generate-key-expected.txt        2016-10-25 05:26:35 UTC (rev 207808)
+++ trunk/LayoutTests/crypto/webkitSubtle/hmac-generate-key-expected.txt        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -12,7 +12,7 @@
</span><span class="cx"> PASS key.type is 'secret'
</span><span class="cx"> PASS key.extractable is true
</span><span class="cx"> PASS key.algorithm.name is 'HMAC'
</span><del>-PASS key.algorithm.length is 64
</del><ins>+PASS key.algorithm.length is 512
</ins><span class="cx"> PASS key.algorithm.hash.name is 'SHA-1'
</span><span class="cx"> PASS key.usages is [&quot;sign&quot;, &quot;verify&quot;]
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestscryptowebkitSubtlehmacgeneratekeyhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/crypto/webkitSubtle/hmac-generate-key.html (207808 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/webkitSubtle/hmac-generate-key.html        2016-10-25 05:26:35 UTC (rev 207808)
+++ trunk/LayoutTests/crypto/webkitSubtle/hmac-generate-key.html        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -27,7 +27,7 @@
</span><span class="cx">     shouldBe(&quot;key.type&quot;, &quot;'secret'&quot;);
</span><span class="cx">     shouldBe(&quot;key.extractable&quot;, &quot;true&quot;);
</span><span class="cx">     shouldBe(&quot;key.algorithm.name&quot;, &quot;'HMAC'&quot;);
</span><del>-    shouldBe(&quot;key.algorithm.length&quot;, &quot;64&quot;);
</del><ins>+    shouldBe(&quot;key.algorithm.length&quot;, &quot;512&quot;);
</ins><span class="cx">     shouldBe(&quot;key.algorithm.hash.name&quot;, &quot;'SHA-1'&quot;);
</span><span class="cx">     shouldBe(&quot;key.usages&quot;, '[&quot;sign&quot;, &quot;verify&quot;]');
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestscryptoworkerssubtleaesgeneratekeyexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/crypto/workers/subtle/aes-generate-key-expected.txt (0 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/workers/subtle/aes-generate-key-expected.txt                                (rev 0)
+++ trunk/LayoutTests/crypto/workers/subtle/aes-generate-key-expected.txt        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -0,0 +1,18 @@
</span><ins>+[Worker] Test generating an AES key using AES-CBC algorithm in workers.
+
+On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
+
+
+Starting worker: resources/aes-generate-key.js
+[Worker] Generating a key...
+PASS [Worker] crypto.subtle.generateKey({name: &quot;aes-cbc&quot;, length: 128}, extractable, [&quot;sign&quot;]) rejected promise  with SyntaxError (DOM Exception 12): A required parameter was missing or out-of-range.
+PASS [Worker] crypto.subtle.generateKey({name: &quot;aes-cbc&quot;, length: 111}, extractable, [&quot;encrypt&quot;]) rejected promise  with OperationError (DOM Exception 34): The operation failed for an operation-specific reason.
+PASS [Worker] key.type is 'secret'
+PASS [Worker] key.extractable is true
+PASS [Worker] key.algorithm.name is 'AES-CBC'
+PASS [Worker] key.algorithm.length is 128
+PASS [Worker] key.usages is ['decrypt', 'encrypt', 'unwrapKey', 'wrapKey']
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
</ins></span></pre></div>
<a id="trunkLayoutTestscryptoworkerssubtleaesgeneratekeyhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/crypto/workers/subtle/aes-generate-key.html (0 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/workers/subtle/aes-generate-key.html                                (rev 0)
+++ trunk/LayoutTests/crypto/workers/subtle/aes-generate-key.html        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -0,0 +1,12 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;html&gt;
+&lt;head&gt;
+    &lt;script src=&quot;../../../resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
+&lt;/head&gt;
+&lt;body&gt;
+    &lt;script&gt;
+        worker = startWorker('resources/aes-generate-key.js');
+    &lt;/script&gt;
+    &lt;script src=&quot;../../../resources/js-test-post.js&quot;&gt;&lt;/script&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestscryptoworkerssubtlehmacgeneratekeyexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/crypto/workers/subtle/hmac-generate-key-expected.txt (0 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/workers/subtle/hmac-generate-key-expected.txt                                (rev 0)
+++ trunk/LayoutTests/crypto/workers/subtle/hmac-generate-key-expected.txt        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -0,0 +1,19 @@
</span><ins>+[Worker] Test generating an HMAC key using SHA-1 algorithm in workers.
+
+On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
+
+
+Starting worker: resources/hmac-generate-key.js
+[Worker] Generating a key...
+PASS [Worker] crypto.subtle.generateKey({name: &quot;hmac&quot;, hash: &quot;sha-1&quot;}, extractable, [&quot;encrypt&quot;]) rejected promise  with SyntaxError (DOM Exception 12): A required parameter was missing or out-of-range.
+PASS [Worker] crypto.subtle.generateKey({name: &quot;hmac&quot;, hash: &quot;sha-1&quot;, length: 0}, extractable, [&quot;sign&quot;, &quot;verify&quot;]) rejected promise  with OperationError (DOM Exception 34): The operation failed for an operation-specific reason.
+PASS [Worker] key.type is 'secret'
+PASS [Worker] key.extractable is true
+PASS [Worker] key.algorithm.name is 'HMAC'
+PASS [Worker] key.algorithm.length is 512
+PASS [Worker] key.algorithm.hash.name is 'SHA-1'
+PASS [Worker] key.usages is [&quot;sign&quot;, &quot;verify&quot;]
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
</ins></span></pre></div>
<a id="trunkLayoutTestscryptoworkerssubtlehmacgeneratekeyhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/crypto/workers/subtle/hmac-generate-key.html (0 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/workers/subtle/hmac-generate-key.html                                (rev 0)
+++ trunk/LayoutTests/crypto/workers/subtle/hmac-generate-key.html        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -0,0 +1,12 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;html&gt;
+&lt;head&gt;
+    &lt;script src=&quot;../../../resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
+&lt;/head&gt;
+&lt;body&gt;
+    &lt;script&gt;
+        worker = startWorker('resources/hmac-generate-key.js');
+    &lt;/script&gt;
+    &lt;script src=&quot;../../../resources/js-test-post.js&quot;&gt;&lt;/script&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestscryptoworkerssubtleresourcesaesgeneratekeyjs"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/crypto/workers/subtle/resources/aes-generate-key.js (0 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/workers/subtle/resources/aes-generate-key.js                                (rev 0)
+++ trunk/LayoutTests/crypto/workers/subtle/resources/aes-generate-key.js        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -0,0 +1,22 @@
</span><ins>+importScripts('../../../../resources/js-test-pre.js');
+
+description(&quot;Test generating an AES key using AES-CBC algorithm in workers.&quot;);
+jsTestIsAsync = true;
+
+var extractable = true;
+
+shouldReject('crypto.subtle.generateKey({name: &quot;aes-cbc&quot;, length: 128}, extractable, [&quot;sign&quot;])');
+shouldReject('crypto.subtle.generateKey({name: &quot;aes-cbc&quot;, length: 111}, extractable, [&quot;encrypt&quot;])');
+
+debug(&quot;Generating a key...&quot;);
+crypto.subtle.generateKey({name: &quot;aes-cbc&quot;, length: 128}, extractable, [&quot;decrypt&quot;, &quot;encrypt&quot;, &quot;unwrapKey&quot;, &quot;wrapKey&quot;]).then(function(result) {
+    key = result;
+
+    shouldBe(&quot;key.type&quot;, &quot;'secret'&quot;);
+    shouldBe(&quot;key.extractable&quot;, &quot;true&quot;);
+    shouldBe(&quot;key.algorithm.name&quot;, &quot;'AES-CBC'&quot;);
+    shouldBe(&quot;key.algorithm.length&quot;, &quot;128&quot;);
+    shouldBe(&quot;key.usages&quot;, &quot;['decrypt', 'encrypt', 'unwrapKey', 'wrapKey']&quot;);
+
+    finishJSTest();
+});
</ins></span></pre></div>
<a id="trunkLayoutTestscryptoworkerssubtleresourceshmacgeneratekeyjs"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/crypto/workers/subtle/resources/hmac-generate-key.js (0 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/workers/subtle/resources/hmac-generate-key.js                                (rev 0)
+++ trunk/LayoutTests/crypto/workers/subtle/resources/hmac-generate-key.js        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -0,0 +1,23 @@
</span><ins>+importScripts('../../../../resources/js-test-pre.js');
+
+description(&quot;Test generating an HMAC key using SHA-1 algorithm in workers.&quot;);
+jsTestIsAsync = true;
+
+var extractable = true;
+
+shouldReject('crypto.subtle.generateKey({name: &quot;hmac&quot;, hash: &quot;sha-1&quot;}, extractable, [&quot;encrypt&quot;])');
+shouldReject('crypto.subtle.generateKey({name: &quot;hmac&quot;, hash: &quot;sha-1&quot;, length: 0}, extractable, [&quot;sign&quot;, &quot;verify&quot;])');
+
+debug(&quot;Generating a key...&quot;);
+crypto.subtle.generateKey({name: &quot;hmac&quot;, hash: &quot;sha-1&quot;}, extractable, [&quot;sign&quot;, &quot;verify&quot;]).then(function(result) {
+    key = result;
+
+    shouldBe(&quot;key.type&quot;, &quot;'secret'&quot;);
+    shouldBe(&quot;key.extractable&quot;, &quot;true&quot;);
+    shouldBe(&quot;key.algorithm.name&quot;, &quot;'HMAC'&quot;);
+    shouldBe(&quot;key.algorithm.length&quot;, &quot;512&quot;);
+    shouldBe(&quot;key.algorithm.hash.name&quot;, &quot;'SHA-1'&quot;);
+    shouldBe(&quot;key.usages&quot;, '[&quot;sign&quot;, &quot;verify&quot;]');
+
+    finishJSTest();
+});
</ins></span></pre></div>
<a id="trunkLayoutTestscryptoworkerssubtleresourcesrsageneratekeyjs"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/crypto/workers/subtle/resources/rsa-generate-key.js (0 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/workers/subtle/resources/rsa-generate-key.js                                (rev 0)
+++ trunk/LayoutTests/crypto/workers/subtle/resources/rsa-generate-key.js        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -0,0 +1,41 @@
</span><ins>+importScripts('../../../../resources/js-test-pre.js');
+importScripts(&quot;../../../resources/common.js&quot;);
+
+description(&quot;Test generating a RSA keypair using RSA-OAEP algorithm in workers.&quot;);
+jsTestIsAsync = true;
+
+var extractable = true;
+var publicExponent = new Uint8Array([0x01, 0x00, 0x01]);
+
+var count = 0;
+function finishTest()
+{
+    count = count + 1;
+    if (count == 2)
+        finishJSTest();
+}
+
+shouldReject('crypto.subtle.generateKey({name: &quot;RSA-OAEP&quot;, modulusLength: 2048, publicExponent: publicExponent, hash: &quot;sha-1&quot;}, extractable, [&quot;sign&quot;])');
+shouldReject('crypto.subtle.generateKey({name: &quot;RSASSA-PKCS1-v1_5&quot;, modulusLength: 0, publicExponent: publicExponent, hash: &quot;sha-1&quot;}, extractable, [&quot;sign&quot;, &quot;verify&quot;])', finishTest);
+
+debug(&quot;Generating a key...&quot;);
+crypto.subtle.generateKey({name: &quot;RSA-OAEP&quot;, modulusLength: 2048, publicExponent: publicExponent, hash: 'sha-1'}, extractable, [&quot;decrypt&quot;, &quot;encrypt&quot;, &quot;wrapKey&quot;, &quot;unwrapKey&quot;]).then(function(result) {
+    keyPair = result;
+    shouldBe(&quot;keyPair.toString()&quot;, &quot;'[object CryptoKeyPair]'&quot;);
+    shouldBe(&quot;keyPair.publicKey.type&quot;, &quot;'public'&quot;);
+    shouldBe(&quot;keyPair.publicKey.extractable&quot;, &quot;true&quot;);
+    shouldBe(&quot;keyPair.publicKey.algorithm.name&quot;, &quot;'RSA-OAEP'&quot;);
+    shouldBe(&quot;keyPair.publicKey.algorithm.modulusLength&quot;, &quot;2048&quot;);
+    shouldBe(&quot;bytesToHexString(keyPair.publicKey.algorithm.publicExponent)&quot;, &quot;'010001'&quot;);
+    shouldBe(&quot;keyPair.publicKey.algorithm.hash.name&quot;, &quot;'SHA-1'&quot;);
+    shouldBe(&quot;keyPair.publicKey.usages&quot;, &quot;['encrypt', 'wrapKey']&quot;);
+    shouldBe(&quot;keyPair.privateKey.type&quot;, &quot;'private'&quot;);
+    shouldBe(&quot;keyPair.privateKey.extractable&quot;, &quot;true&quot;);
+    shouldBe(&quot;keyPair.privateKey.algorithm.name&quot;, &quot;'RSA-OAEP'&quot;);
+    shouldBe(&quot;keyPair.privateKey.algorithm.modulusLength&quot;, &quot;2048&quot;);
+    shouldBe(&quot;bytesToHexString(keyPair.privateKey.algorithm.publicExponent)&quot;, &quot;'010001'&quot;);
+    shouldBe(&quot;keyPair.privateKey.algorithm.hash.name&quot;, &quot;'SHA-1'&quot;);
+    shouldBe(&quot;keyPair.privateKey.usages&quot;, &quot;['decrypt', 'unwrapKey']&quot;);
+
+    finishTest();
+});
</ins></span></pre></div>
<a id="trunkLayoutTestscryptoworkerssubtlersageneratekeyexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/crypto/workers/subtle/rsa-generate-key-expected.txt (0 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/workers/subtle/rsa-generate-key-expected.txt                                (rev 0)
+++ trunk/LayoutTests/crypto/workers/subtle/rsa-generate-key-expected.txt        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -0,0 +1,28 @@
</span><ins>+[Worker] Test generating a RSA keypair using RSA-OAEP algorithm in workers.
+
+On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
+
+
+Starting worker: resources/rsa-generate-key.js
+[Worker] Generating a key...
+PASS [Worker] crypto.subtle.generateKey({name: &quot;RSA-OAEP&quot;, modulusLength: 2048, publicExponent: publicExponent, hash: &quot;sha-1&quot;}, extractable, [&quot;sign&quot;]) rejected promise  with SyntaxError (DOM Exception 12): A required parameter was missing or out-of-range.
+PASS [Worker] crypto.subtle.generateKey({name: &quot;RSASSA-PKCS1-v1_5&quot;, modulusLength: 0, publicExponent: publicExponent, hash: &quot;sha-1&quot;}, extractable, [&quot;sign&quot;, &quot;verify&quot;]) rejected promise  with OperationError (DOM Exception 34): The operation failed for an operation-specific reason.
+PASS [Worker] keyPair.toString() is '[object CryptoKeyPair]'
+PASS [Worker] keyPair.publicKey.type is 'public'
+PASS [Worker] keyPair.publicKey.extractable is true
+PASS [Worker] keyPair.publicKey.algorithm.name is 'RSA-OAEP'
+PASS [Worker] keyPair.publicKey.algorithm.modulusLength is 2048
+PASS [Worker] bytesToHexString(keyPair.publicKey.algorithm.publicExponent) is '010001'
+PASS [Worker] keyPair.publicKey.algorithm.hash.name is 'SHA-1'
+PASS [Worker] keyPair.publicKey.usages is ['encrypt', 'wrapKey']
+PASS [Worker] keyPair.privateKey.type is 'private'
+PASS [Worker] keyPair.privateKey.extractable is true
+PASS [Worker] keyPair.privateKey.algorithm.name is 'RSA-OAEP'
+PASS [Worker] keyPair.privateKey.algorithm.modulusLength is 2048
+PASS [Worker] bytesToHexString(keyPair.privateKey.algorithm.publicExponent) is '010001'
+PASS [Worker] keyPair.privateKey.algorithm.hash.name is 'SHA-1'
+PASS [Worker] keyPair.privateKey.usages is ['decrypt', 'unwrapKey']
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
</ins></span></pre></div>
<a id="trunkLayoutTestscryptoworkerssubtlersageneratekeyhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/crypto/workers/subtle/rsa-generate-key.html (0 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/workers/subtle/rsa-generate-key.html                                (rev 0)
+++ trunk/LayoutTests/crypto/workers/subtle/rsa-generate-key.html        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -0,0 +1,12 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;html&gt;
+&lt;head&gt;
+    &lt;script src=&quot;../../../resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
+&lt;/head&gt;
+&lt;body&gt;
+    &lt;script&gt;
+        worker = startWorker('resources/rsa-generate-key.js');
+    &lt;/script&gt;
+    &lt;script src=&quot;../../../resources/js-test-post.js&quot;&gt;&lt;/script&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/ChangeLog (207808 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/ChangeLog        2016-10-25 05:26:35 UTC (rev 207808)
+++ trunk/LayoutTests/imported/w3c/ChangeLog        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -1,3 +1,61 @@
</span><ins>+2016-10-24  Jiewen Tan  &lt;jiewen_tan@apple.com&gt;
+
+        Update SubtleCrypto::generateKey to match the latest spec
+        https://bugs.webkit.org/show_bug.cgi?id=163718
+        &lt;rdar://problem/28864380&gt;
+
+        Reviewed by Chris Dumez.
+
+        * WebCryptoAPI/generateKey/test_aes-cbc-expected.txt:
+        * WebCryptoAPI/generateKey/test_aes-cbc.html:
+        * WebCryptoAPI/generateKey/test_aes-ctr-expected.txt:
+        * WebCryptoAPI/generateKey/test_aes-ctr.html:
+        * WebCryptoAPI/generateKey/test_failures-expected.txt:
+        * WebCryptoAPI/generateKey/test_failures.html:
+        * WebCryptoAPI/generateKey/test_failures_AES-CBC-expected.txt:
+        * WebCryptoAPI/generateKey/test_failures_AES-CBC.html:
+        * WebCryptoAPI/generateKey/test_failures_AES-CTR-expected.txt:
+        * WebCryptoAPI/generateKey/test_failures_AES-CTR.html:
+        * WebCryptoAPI/generateKey/test_failures_AES-GCM-expected.txt:
+        * WebCryptoAPI/generateKey/test_failures_AES-GCM.html:
+        * WebCryptoAPI/generateKey/test_failures_AES-KW-expected.txt:
+        * WebCryptoAPI/generateKey/test_failures_AES-KW.html:
+        * WebCryptoAPI/generateKey/test_failures_ECDH-expected.txt:
+        * WebCryptoAPI/generateKey/test_failures_ECDH.html:
+        * WebCryptoAPI/generateKey/test_failures_ECDSA-expected.txt:
+        * WebCryptoAPI/generateKey/test_failures_ECDSA.html:
+        * WebCryptoAPI/generateKey/test_failures_HMAC-expected.txt:
+        * WebCryptoAPI/generateKey/test_failures_HMAC.html:
+        * WebCryptoAPI/generateKey/test_failures_RSA-OAEP-expected.txt:
+        * WebCryptoAPI/generateKey/test_failures_RSA-OAEP.html:
+        * WebCryptoAPI/generateKey/test_failures_RSA-PSS-expected.txt:
+        * WebCryptoAPI/generateKey/test_failures_RSA-PSS.html:
+        * WebCryptoAPI/generateKey/test_failures_RSASSA-PKCS1-v1_5-expected.txt:
+        * WebCryptoAPI/generateKey/test_failures_RSASSA-PKCS1-v1_5.html:
+        * WebCryptoAPI/generateKey/test_successes-expected.txt:
+        * WebCryptoAPI/generateKey/test_successes.html:
+        * WebCryptoAPI/generateKey/test_successes_AES-CBC-expected.txt:
+        * WebCryptoAPI/generateKey/test_successes_AES-CBC.html:
+        * WebCryptoAPI/generateKey/test_successes_AES-CTR-expected.txt:
+        * WebCryptoAPI/generateKey/test_successes_AES-CTR.html:
+        * WebCryptoAPI/generateKey/test_successes_AES-GCM-expected.txt:
+        * WebCryptoAPI/generateKey/test_successes_AES-GCM.html:
+        * WebCryptoAPI/generateKey/test_successes_AES-KW-expected.txt:
+        * WebCryptoAPI/generateKey/test_successes_AES-KW.html:
+        * WebCryptoAPI/generateKey/test_successes_ECDH-expected.txt:
+        * WebCryptoAPI/generateKey/test_successes_ECDH.html:
+        * WebCryptoAPI/generateKey/test_successes_ECDSA-expected.txt:
+        * WebCryptoAPI/generateKey/test_successes_ECDSA.html:
+        * WebCryptoAPI/generateKey/test_successes_HMAC-expected.txt:
+        * WebCryptoAPI/generateKey/test_successes_HMAC.html:
+        * WebCryptoAPI/generateKey/test_successes_RSA-OAEP-expected.txt:
+        * WebCryptoAPI/generateKey/test_successes_RSA-OAEP.html:
+        * WebCryptoAPI/generateKey/test_successes_RSA-PSS-expected.txt:
+        * WebCryptoAPI/generateKey/test_successes_RSA-PSS.html:
+        * WebCryptoAPI/generateKey/test_successes_RSASSA-PKCS1-v1_5-expected.txt:
+        * WebCryptoAPI/generateKey/test_successes_RSASSA-PKCS1-v1_5.html:
+        * WebCryptoAPI/idlharness-expected.txt:
+
</ins><span class="cx"> 2016-10-24  Alex Christensen  &lt;achristensen@webkit.org&gt;
</span><span class="cx"> 
</span><span class="cx">         URLParser should match old URL::parse with %2E in path
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cWebCryptoAPIgenerateKeytest_aescbcexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_aes-cbc-expected.txt (207808 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_aes-cbc-expected.txt        2016-10-25 05:26:35 UTC (rev 207808)
+++ trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_aes-cbc-expected.txt        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -1,3 +1,294 @@
</span><del>-CONSOLE MESSAGE: line 20: ReferenceError: Can't find variable: CryptoKey
-FAIL: Timed out waiting for notifyDone to be called
</del><ins>+generateKey Tests for Good Parameters
</ins><span class="cx"> 
</span><ins>+Warning! RSA key generation is intrinsically very slow, so the related tests can take up to several minutes to complete, depending on browser!
+
+
+PASS Success: generateKey({length: 128, name: AES-CBC}, false, [encrypt]) 
+PASS Success: generateKey({length: 128, name: AES-CBC}, true, [encrypt]) 
+PASS Success: generateKey({length: 128, name: AES-CBC}, false, [decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: AES-CBC}, true, [decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: AES-CBC}, false, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: AES-CBC}, false, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: AES-CBC}, false, [wrapKey, encrypt]) 
+PASS Success: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, encrypt]) 
+PASS Success: generateKey({length: 128, name: AES-CBC}, false, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({length: 128, name: AES-CBC}, false, [unwrapKey, encrypt]) 
+PASS Success: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, encrypt]) 
+PASS Success: generateKey({length: 128, name: AES-CBC}, false, [decrypt]) 
+PASS Success: generateKey({length: 128, name: AES-CBC}, true, [decrypt]) 
+PASS Success: generateKey({length: 128, name: AES-CBC}, false, [wrapKey, decrypt]) 
+PASS Success: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, decrypt]) 
+PASS Success: generateKey({length: 128, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({length: 128, name: AES-CBC}, false, [unwrapKey, decrypt]) 
+PASS Success: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, decrypt]) 
+PASS Success: generateKey({length: 128, name: AES-CBC}, false, [wrapKey]) 
+PASS Success: generateKey({length: 128, name: AES-CBC}, true, [wrapKey]) 
+PASS Success: generateKey({length: 128, name: AES-CBC}, false, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 128, name: AES-CBC}, false, [unwrapKey]) 
+PASS Success: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey]) 
+PASS Success: generateKey({length: 128, name: AES-CBC}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 128, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 192, name: AES-CBC}, false, [encrypt]) 
+PASS Success: generateKey({length: 192, name: AES-CBC}, true, [encrypt]) 
+PASS Success: generateKey({length: 192, name: AES-CBC}, false, [decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: AES-CBC}, true, [decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: AES-CBC}, false, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: AES-CBC}, false, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: AES-CBC}, false, [wrapKey, encrypt]) 
+PASS Success: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, encrypt]) 
+PASS Success: generateKey({length: 192, name: AES-CBC}, false, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({length: 192, name: AES-CBC}, false, [unwrapKey, encrypt]) 
+PASS Success: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, encrypt]) 
+PASS Success: generateKey({length: 192, name: AES-CBC}, false, [decrypt]) 
+PASS Success: generateKey({length: 192, name: AES-CBC}, true, [decrypt]) 
+PASS Success: generateKey({length: 192, name: AES-CBC}, false, [wrapKey, decrypt]) 
+PASS Success: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, decrypt]) 
+PASS Success: generateKey({length: 192, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({length: 192, name: AES-CBC}, false, [unwrapKey, decrypt]) 
+PASS Success: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, decrypt]) 
+PASS Success: generateKey({length: 192, name: AES-CBC}, false, [wrapKey]) 
+PASS Success: generateKey({length: 192, name: AES-CBC}, true, [wrapKey]) 
+PASS Success: generateKey({length: 192, name: AES-CBC}, false, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 192, name: AES-CBC}, false, [unwrapKey]) 
+PASS Success: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey]) 
+PASS Success: generateKey({length: 192, name: AES-CBC}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 192, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 256, name: AES-CBC}, false, [encrypt]) 
+PASS Success: generateKey({length: 256, name: AES-CBC}, true, [encrypt]) 
+PASS Success: generateKey({length: 256, name: AES-CBC}, false, [decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: AES-CBC}, true, [decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: AES-CBC}, false, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: AES-CBC}, false, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: AES-CBC}, false, [wrapKey, encrypt]) 
+PASS Success: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, encrypt]) 
+PASS Success: generateKey({length: 256, name: AES-CBC}, false, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({length: 256, name: AES-CBC}, false, [unwrapKey, encrypt]) 
+PASS Success: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, encrypt]) 
+PASS Success: generateKey({length: 256, name: AES-CBC}, false, [decrypt]) 
+PASS Success: generateKey({length: 256, name: AES-CBC}, true, [decrypt]) 
+PASS Success: generateKey({length: 256, name: AES-CBC}, false, [wrapKey, decrypt]) 
+PASS Success: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, decrypt]) 
+PASS Success: generateKey({length: 256, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({length: 256, name: AES-CBC}, false, [unwrapKey, decrypt]) 
+PASS Success: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, decrypt]) 
+PASS Success: generateKey({length: 256, name: AES-CBC}, false, [wrapKey]) 
+PASS Success: generateKey({length: 256, name: AES-CBC}, true, [wrapKey]) 
+PASS Success: generateKey({length: 256, name: AES-CBC}, false, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 256, name: AES-CBC}, false, [unwrapKey]) 
+PASS Success: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey]) 
+PASS Success: generateKey({length: 256, name: AES-CBC}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 256, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 128, name: aes-cbc}, false, [encrypt]) 
+PASS Success: generateKey({length: 128, name: aes-cbc}, true, [encrypt]) 
+PASS Success: generateKey({length: 128, name: aes-cbc}, false, [decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: aes-cbc}, true, [decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: aes-cbc}, false, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: aes-cbc}, true, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: aes-cbc}, false, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: aes-cbc}, true, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: aes-cbc}, false, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: aes-cbc}, true, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: aes-cbc}, false, [wrapKey, encrypt]) 
+PASS Success: generateKey({length: 128, name: aes-cbc}, true, [wrapKey, encrypt]) 
+PASS Success: generateKey({length: 128, name: aes-cbc}, false, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({length: 128, name: aes-cbc}, true, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({length: 128, name: aes-cbc}, false, [unwrapKey, encrypt]) 
+PASS Success: generateKey({length: 128, name: aes-cbc}, true, [unwrapKey, encrypt]) 
+PASS Success: generateKey({length: 128, name: aes-cbc}, false, [decrypt]) 
+PASS Success: generateKey({length: 128, name: aes-cbc}, true, [decrypt]) 
+PASS Success: generateKey({length: 128, name: aes-cbc}, false, [wrapKey, decrypt]) 
+PASS Success: generateKey({length: 128, name: aes-cbc}, true, [wrapKey, decrypt]) 
+PASS Success: generateKey({length: 128, name: aes-cbc}, false, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({length: 128, name: aes-cbc}, true, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({length: 128, name: aes-cbc}, false, [unwrapKey, decrypt]) 
+PASS Success: generateKey({length: 128, name: aes-cbc}, true, [unwrapKey, decrypt]) 
+PASS Success: generateKey({length: 128, name: aes-cbc}, false, [wrapKey]) 
+PASS Success: generateKey({length: 128, name: aes-cbc}, true, [wrapKey]) 
+PASS Success: generateKey({length: 128, name: aes-cbc}, false, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 128, name: aes-cbc}, true, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 128, name: aes-cbc}, false, [unwrapKey]) 
+PASS Success: generateKey({length: 128, name: aes-cbc}, true, [unwrapKey]) 
+PASS Success: generateKey({length: 128, name: aes-cbc}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 128, name: aes-cbc}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 192, name: aes-cbc}, false, [encrypt]) 
+PASS Success: generateKey({length: 192, name: aes-cbc}, true, [encrypt]) 
+PASS Success: generateKey({length: 192, name: aes-cbc}, false, [decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: aes-cbc}, true, [decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: aes-cbc}, false, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: aes-cbc}, true, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: aes-cbc}, false, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: aes-cbc}, true, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: aes-cbc}, false, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: aes-cbc}, true, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: aes-cbc}, false, [wrapKey, encrypt]) 
+PASS Success: generateKey({length: 192, name: aes-cbc}, true, [wrapKey, encrypt]) 
+PASS Success: generateKey({length: 192, name: aes-cbc}, false, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({length: 192, name: aes-cbc}, true, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({length: 192, name: aes-cbc}, false, [unwrapKey, encrypt]) 
+PASS Success: generateKey({length: 192, name: aes-cbc}, true, [unwrapKey, encrypt]) 
+PASS Success: generateKey({length: 192, name: aes-cbc}, false, [decrypt]) 
+PASS Success: generateKey({length: 192, name: aes-cbc}, true, [decrypt]) 
+PASS Success: generateKey({length: 192, name: aes-cbc}, false, [wrapKey, decrypt]) 
+PASS Success: generateKey({length: 192, name: aes-cbc}, true, [wrapKey, decrypt]) 
+PASS Success: generateKey({length: 192, name: aes-cbc}, false, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({length: 192, name: aes-cbc}, true, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({length: 192, name: aes-cbc}, false, [unwrapKey, decrypt]) 
+PASS Success: generateKey({length: 192, name: aes-cbc}, true, [unwrapKey, decrypt]) 
+PASS Success: generateKey({length: 192, name: aes-cbc}, false, [wrapKey]) 
+PASS Success: generateKey({length: 192, name: aes-cbc}, true, [wrapKey]) 
+PASS Success: generateKey({length: 192, name: aes-cbc}, false, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 192, name: aes-cbc}, true, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 192, name: aes-cbc}, false, [unwrapKey]) 
+PASS Success: generateKey({length: 192, name: aes-cbc}, true, [unwrapKey]) 
+PASS Success: generateKey({length: 192, name: aes-cbc}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 192, name: aes-cbc}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 256, name: aes-cbc}, false, [encrypt]) 
+PASS Success: generateKey({length: 256, name: aes-cbc}, true, [encrypt]) 
+PASS Success: generateKey({length: 256, name: aes-cbc}, false, [decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: aes-cbc}, true, [decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: aes-cbc}, false, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: aes-cbc}, true, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: aes-cbc}, false, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: aes-cbc}, true, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: aes-cbc}, false, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: aes-cbc}, true, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: aes-cbc}, false, [wrapKey, encrypt]) 
+PASS Success: generateKey({length: 256, name: aes-cbc}, true, [wrapKey, encrypt]) 
+PASS Success: generateKey({length: 256, name: aes-cbc}, false, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({length: 256, name: aes-cbc}, true, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({length: 256, name: aes-cbc}, false, [unwrapKey, encrypt]) 
+PASS Success: generateKey({length: 256, name: aes-cbc}, true, [unwrapKey, encrypt]) 
+PASS Success: generateKey({length: 256, name: aes-cbc}, false, [decrypt]) 
+PASS Success: generateKey({length: 256, name: aes-cbc}, true, [decrypt]) 
+PASS Success: generateKey({length: 256, name: aes-cbc}, false, [wrapKey, decrypt]) 
+PASS Success: generateKey({length: 256, name: aes-cbc}, true, [wrapKey, decrypt]) 
+PASS Success: generateKey({length: 256, name: aes-cbc}, false, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({length: 256, name: aes-cbc}, true, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({length: 256, name: aes-cbc}, false, [unwrapKey, decrypt]) 
+PASS Success: generateKey({length: 256, name: aes-cbc}, true, [unwrapKey, decrypt]) 
+PASS Success: generateKey({length: 256, name: aes-cbc}, false, [wrapKey]) 
+PASS Success: generateKey({length: 256, name: aes-cbc}, true, [wrapKey]) 
+PASS Success: generateKey({length: 256, name: aes-cbc}, false, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 256, name: aes-cbc}, true, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 256, name: aes-cbc}, false, [unwrapKey]) 
+PASS Success: generateKey({length: 256, name: aes-cbc}, true, [unwrapKey]) 
+PASS Success: generateKey({length: 256, name: aes-cbc}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 256, name: aes-cbc}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [encrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [encrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [wrapKey, encrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [wrapKey, encrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [unwrapKey, encrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [unwrapKey, encrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [decrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [decrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [wrapKey, decrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [wrapKey, decrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [unwrapKey, decrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [unwrapKey, decrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [wrapKey]) 
+PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [wrapKey]) 
+PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [unwrapKey]) 
+PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [unwrapKey]) 
+PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [encrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [encrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [wrapKey, encrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [wrapKey, encrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [unwrapKey, encrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [unwrapKey, encrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [decrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [decrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [wrapKey, decrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [wrapKey, decrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [unwrapKey, decrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [unwrapKey, decrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [wrapKey]) 
+PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [wrapKey]) 
+PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [unwrapKey]) 
+PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [unwrapKey]) 
+PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [encrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [encrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [wrapKey, encrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [wrapKey, encrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [unwrapKey, encrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [unwrapKey, encrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [decrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [decrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [wrapKey, decrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [wrapKey, decrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [unwrapKey, decrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [unwrapKey, decrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [wrapKey]) 
+PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [wrapKey]) 
+PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [unwrapKey]) 
+PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [unwrapKey]) 
+PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cWebCryptoAPIgenerateKeytest_aescbchtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_aes-cbc.html (207808 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_aes-cbc.html        2016-10-25 05:26:35 UTC (rev 207808)
+++ trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_aes-cbc.html        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -7,7 +7,7 @@
</span><span class="cx"> &lt;script src=&quot;../../../../resources/testharness.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> 
</span><del>-&lt;script src=&quot;/WebCryptoAPI/util/helpers.js&quot;&gt;&lt;/script&gt;
</del><ins>+&lt;script src=&quot;../util/helpers.js&quot;&gt;&lt;/script&gt;
</ins><span class="cx"> &lt;script src=&quot;successes.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> 
</span><span class="cx"> &lt;h1&gt;generateKey Tests for Good Parameters&lt;/h1&gt;
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cWebCryptoAPIgenerateKeytest_aesctrexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_aes-ctr-expected.txt (207808 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_aes-ctr-expected.txt        2016-10-25 05:26:35 UTC (rev 207808)
+++ trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_aes-ctr-expected.txt        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -1,3 +1,294 @@
</span><del>-CONSOLE MESSAGE: line 20: ReferenceError: Can't find variable: CryptoKey
-FAIL: Timed out waiting for notifyDone to be called
</del><ins>+generateKey Tests for Good Parameters
</ins><span class="cx"> 
</span><ins>+Warning! RSA key generation is intrinsically very slow, so the related tests can take up to several minutes to complete, depending on browser!
+
+
+FAIL Success: generateKey({length: 128, name: AES-CTR}, false, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-CTR}, true, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-CTR}, false, [decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-CTR}, true, [decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-CTR}, false, [wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-CTR}, false, [unwrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-CTR}, false, [wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-CTR}, false, [unwrapKey, wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-CTR}, false, [unwrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-CTR}, false, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-CTR}, true, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-CTR}, false, [wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-CTR}, false, [unwrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-CTR}, false, [wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-CTR}, true, [wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-CTR}, false, [unwrapKey, wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-CTR}, false, [unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-CTR}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-CTR}, false, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-CTR}, true, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-CTR}, false, [decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-CTR}, true, [decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-CTR}, false, [wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-CTR}, false, [unwrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-CTR}, false, [wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-CTR}, false, [unwrapKey, wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-CTR}, false, [unwrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-CTR}, false, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-CTR}, true, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-CTR}, false, [wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-CTR}, false, [unwrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-CTR}, false, [wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-CTR}, true, [wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-CTR}, false, [unwrapKey, wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-CTR}, false, [unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-CTR}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-CTR}, false, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-CTR}, true, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-CTR}, false, [decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-CTR}, true, [decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-CTR}, false, [wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-CTR}, false, [unwrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-CTR}, false, [wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-CTR}, false, [unwrapKey, wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-CTR}, false, [unwrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-CTR}, false, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-CTR}, true, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-CTR}, false, [wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-CTR}, false, [unwrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-CTR}, false, [wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-CTR}, true, [wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-CTR}, false, [unwrapKey, wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-CTR}, false, [unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-CTR}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-ctr}, false, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-ctr}, true, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-ctr}, false, [decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-ctr}, true, [decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-ctr}, false, [wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-ctr}, true, [wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-ctr}, false, [unwrapKey, wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-ctr}, true, [unwrapKey, wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-ctr}, false, [unwrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-ctr}, true, [unwrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-ctr}, false, [wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-ctr}, true, [wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-ctr}, false, [unwrapKey, wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-ctr}, true, [unwrapKey, wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-ctr}, false, [unwrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-ctr}, true, [unwrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-ctr}, false, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-ctr}, true, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-ctr}, false, [wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-ctr}, true, [wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-ctr}, false, [unwrapKey, wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-ctr}, true, [unwrapKey, wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-ctr}, false, [unwrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-ctr}, true, [unwrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-ctr}, false, [wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-ctr}, true, [wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-ctr}, false, [unwrapKey, wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-ctr}, true, [unwrapKey, wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-ctr}, false, [unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-ctr}, true, [unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-ctr}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-ctr}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-ctr}, false, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-ctr}, true, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-ctr}, false, [decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-ctr}, true, [decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-ctr}, false, [wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-ctr}, true, [wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-ctr}, false, [unwrapKey, wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-ctr}, true, [unwrapKey, wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-ctr}, false, [unwrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-ctr}, true, [unwrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-ctr}, false, [wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-ctr}, true, [wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-ctr}, false, [unwrapKey, wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-ctr}, true, [unwrapKey, wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-ctr}, false, [unwrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-ctr}, true, [unwrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-ctr}, false, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-ctr}, true, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-ctr}, false, [wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-ctr}, true, [wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-ctr}, false, [unwrapKey, wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-ctr}, true, [unwrapKey, wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-ctr}, false, [unwrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-ctr}, true, [unwrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-ctr}, false, [wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-ctr}, true, [wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-ctr}, false, [unwrapKey, wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-ctr}, true, [unwrapKey, wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-ctr}, false, [unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-ctr}, true, [unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-ctr}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-ctr}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-ctr}, false, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-ctr}, true, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-ctr}, false, [decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-ctr}, true, [decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-ctr}, false, [wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-ctr}, true, [wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-ctr}, false, [unwrapKey, wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-ctr}, true, [unwrapKey, wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-ctr}, false, [unwrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-ctr}, true, [unwrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-ctr}, false, [wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-ctr}, true, [wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-ctr}, false, [unwrapKey, wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-ctr}, true, [unwrapKey, wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-ctr}, false, [unwrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-ctr}, true, [unwrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-ctr}, false, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-ctr}, true, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-ctr}, false, [wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-ctr}, true, [wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-ctr}, false, [unwrapKey, wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-ctr}, true, [unwrapKey, wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-ctr}, false, [unwrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-ctr}, true, [unwrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-ctr}, false, [wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-ctr}, true, [wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-ctr}, false, [unwrapKey, wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-ctr}, true, [unwrapKey, wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-ctr}, false, [unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-ctr}, true, [unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-ctr}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-ctr}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-ctr}, false, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-ctr}, true, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-ctr}, false, [decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-ctr}, true, [decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-ctr}, false, [wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-ctr}, true, [wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-ctr}, false, [unwrapKey, wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-ctr}, true, [unwrapKey, wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-ctr}, false, [unwrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-ctr}, true, [unwrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-ctr}, false, [wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-ctr}, true, [wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-ctr}, false, [unwrapKey, wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-ctr}, true, [unwrapKey, wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-ctr}, false, [unwrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-ctr}, true, [unwrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-ctr}, false, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-ctr}, true, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-ctr}, false, [wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-ctr}, true, [wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-ctr}, false, [unwrapKey, wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-ctr}, true, [unwrapKey, wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-ctr}, false, [unwrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-ctr}, true, [unwrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-ctr}, false, [wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-ctr}, true, [wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-ctr}, false, [unwrapKey, wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-ctr}, true, [unwrapKey, wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-ctr}, false, [unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-ctr}, true, [unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-ctr}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-ctr}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-ctr}, false, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-ctr}, true, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-ctr}, false, [decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-ctr}, true, [decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-ctr}, false, [wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-ctr}, true, [wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-ctr}, false, [unwrapKey, wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-ctr}, true, [unwrapKey, wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-ctr}, false, [unwrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-ctr}, true, [unwrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-ctr}, false, [wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-ctr}, true, [wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-ctr}, false, [unwrapKey, wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-ctr}, true, [unwrapKey, wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-ctr}, false, [unwrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-ctr}, true, [unwrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-ctr}, false, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-ctr}, true, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-ctr}, false, [wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-ctr}, true, [wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-ctr}, false, [unwrapKey, wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-ctr}, true, [unwrapKey, wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-ctr}, false, [unwrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-ctr}, true, [unwrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-ctr}, false, [wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-ctr}, true, [wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-ctr}, false, [unwrapKey, wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-ctr}, true, [unwrapKey, wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-ctr}, false, [unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-ctr}, true, [unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-ctr}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-ctr}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-ctr}, false, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-ctr}, true, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-ctr}, false, [decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-ctr}, true, [decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-ctr}, false, [wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-ctr}, true, [wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-ctr}, false, [unwrapKey, wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-ctr}, true, [unwrapKey, wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-ctr}, false, [unwrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-ctr}, true, [unwrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-ctr}, false, [wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-ctr}, true, [wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-ctr}, false, [unwrapKey, wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-ctr}, true, [unwrapKey, wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-ctr}, false, [unwrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-ctr}, true, [unwrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-ctr}, false, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-ctr}, true, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-ctr}, false, [wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-ctr}, true, [wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-ctr}, false, [unwrapKey, wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-ctr}, true, [unwrapKey, wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-ctr}, false, [unwrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-ctr}, true, [unwrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-ctr}, false, [wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-ctr}, true, [wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-ctr}, false, [unwrapKey, wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-ctr}, true, [unwrapKey, wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-ctr}, false, [unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-ctr}, true, [unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-ctr}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-ctr}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cWebCryptoAPIgenerateKeytest_aesctrhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_aes-ctr.html (207808 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_aes-ctr.html        2016-10-25 05:26:35 UTC (rev 207808)
+++ trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_aes-ctr.html        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -7,7 +7,7 @@
</span><span class="cx"> &lt;script src=&quot;../../../../resources/testharness.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> 
</span><del>-&lt;script src=&quot;/WebCryptoAPI/util/helpers.js&quot;&gt;&lt;/script&gt;
</del><ins>+&lt;script src=&quot;../util/helpers.js&quot;&gt;&lt;/script&gt;
</ins><span class="cx"> &lt;script src=&quot;successes.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> 
</span><span class="cx"> &lt;h1&gt;generateKey Tests for Good Parameters&lt;/h1&gt;
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cWebCryptoAPIgenerateKeytest_failuresexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_failures-expected.txt (207808 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_failures-expected.txt        2016-10-25 05:26:35 UTC (rev 207808)
+++ trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_failures-expected.txt        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -1,3 +1,2372 @@
</span><del>-CONSOLE MESSAGE: line 25: ReferenceError: Can't find variable: CryptoKey
-FAIL: Timed out waiting for notifyDone to be called
</del><ins>+generateKey Tests for Bad Parameters
</ins><span class="cx"> 
</span><ins>+
+PASS Bad algorithm: generateKey(AES, false, [decrypt]) 
+PASS Bad algorithm: generateKey(AES, true, [decrypt]) 
+PASS Bad algorithm: generateKey(AES, RED, [decrypt]) 
+PASS Bad algorithm: generateKey(AES, 7, [decrypt]) 
+PASS Bad algorithm: generateKey(AES, false, [sign, decrypt]) 
+PASS Bad algorithm: generateKey(AES, true, [sign, decrypt]) 
+PASS Bad algorithm: generateKey(AES, RED, [sign, decrypt]) 
+PASS Bad algorithm: generateKey(AES, 7, [sign, decrypt]) 
+PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey(AES, false, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey(AES, true, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey(AES, RED, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey(AES, 7, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey(AES, false, [sign]) 
+PASS Bad algorithm: generateKey(AES, true, [sign]) 
+PASS Bad algorithm: generateKey(AES, RED, [sign]) 
+PASS Bad algorithm: generateKey(AES, 7, [sign]) 
+PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey(AES, false, [deriveBits]) 
+PASS Bad algorithm: generateKey(AES, true, [deriveBits]) 
+PASS Bad algorithm: generateKey(AES, RED, [deriveBits]) 
+PASS Bad algorithm: generateKey(AES, 7, [deriveBits]) 
+PASS Bad algorithm: generateKey(AES, false, []) 
+PASS Bad algorithm: generateKey(AES, true, []) 
+PASS Bad algorithm: generateKey(AES, RED, []) 
+PASS Bad algorithm: generateKey(AES, 7, []) 
+PASS Bad algorithm: generateKey(AES, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey(AES, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey(AES, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey(AES, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({name: AES}, false, [decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, true, [decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, false, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, true, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, RED, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, 7, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, false, [sign]) 
+PASS Bad algorithm: generateKey({name: AES}, true, [sign]) 
+PASS Bad algorithm: generateKey({name: AES}, RED, [sign]) 
+PASS Bad algorithm: generateKey({name: AES}, 7, [sign]) 
+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits]) 
+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits]) 
+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits]) 
+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits]) 
+PASS Bad algorithm: generateKey({name: AES}, false, []) 
+PASS Bad algorithm: generateKey({name: AES}, true, []) 
+PASS Bad algorithm: generateKey({name: AES}, RED, []) 
+PASS Bad algorithm: generateKey({name: AES}, 7, []) 
+PASS Bad algorithm: generateKey({name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, []) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, []) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, []) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, []) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, []) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, []) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, []) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, []) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [encrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [decrypt, encrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, encrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, encrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [decrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, decrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, decrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [encrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [decrypt, encrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, encrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, encrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [decrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, decrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, decrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [encrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [decrypt, encrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, encrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, encrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [decrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, decrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, decrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [encrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [decrypt, encrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, encrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, encrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [decrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, decrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, decrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [encrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [decrypt, encrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, encrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, encrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [decrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, decrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, decrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [encrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [decrypt, encrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, encrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, encrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [decrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, decrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, decrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [encrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [decrypt, encrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, encrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, encrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [decrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, decrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, decrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [encrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [decrypt, encrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, encrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, encrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [decrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, decrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, decrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [encrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [decrypt, encrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, encrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, encrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [decrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, decrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, decrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [encrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [decrypt, encrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, encrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, encrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [decrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, decrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, decrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [encrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [decrypt, encrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, encrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, encrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [decrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, decrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, decrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [encrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [decrypt, encrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, encrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, encrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [decrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, decrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, decrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [sign]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [encrypt, sign]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [decrypt, encrypt, sign]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, sign]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, sign]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, encrypt, sign]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, sign]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, encrypt, sign]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [decrypt, sign]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, decrypt, sign]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, sign]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, decrypt, sign]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, sign]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, sign]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, sign]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [verify]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [encrypt, verify]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [decrypt, encrypt, verify]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, verify]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, verify]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, encrypt, verify]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, verify]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, encrypt, verify]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [decrypt, verify]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, decrypt, verify]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, verify]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, decrypt, verify]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, verify]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, verify]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, verify]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [deriveKey]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [encrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [decrypt, encrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, encrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, encrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [decrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, decrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, decrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, deriveKey]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, deriveKey]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, deriveKey]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [deriveBits]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [encrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [decrypt, encrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, encrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, encrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [decrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, decrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, decrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, deriveBits]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, deriveBits]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, deriveBits]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [sign]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [encrypt, sign]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [decrypt, encrypt, sign]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, sign]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, sign]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, encrypt, sign]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, sign]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, encrypt, sign]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [decrypt, sign]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, decrypt, sign]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, sign]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, decrypt, sign]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, sign]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, sign]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, sign]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [verify]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [encrypt, verify]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [decrypt, encrypt, verify]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, verify]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, verify]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, encrypt, verify]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, verify]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, encrypt, verify]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [decrypt, verify]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, decrypt, verify]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, verify]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, decrypt, verify]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, verify]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, verify]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, verify]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [deriveKey]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [encrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [decrypt, encrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, encrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, encrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [decrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, decrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, decrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, deriveKey]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, deriveKey]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, deriveKey]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [deriveBits]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [encrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [decrypt, encrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, encrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, encrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [decrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, decrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, decrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, deriveBits]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, deriveBits]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, deriveBits]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [sign]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [encrypt, sign]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [decrypt, encrypt, sign]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, sign]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, sign]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, encrypt, sign]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, sign]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, encrypt, sign]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [decrypt, sign]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, decrypt, sign]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, sign]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, decrypt, sign]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, sign]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, sign]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, sign]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [verify]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [encrypt, verify]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [decrypt, encrypt, verify]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, verify]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, verify]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, encrypt, verify]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, verify]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, encrypt, verify]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [decrypt, verify]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, decrypt, verify]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, verify]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, decrypt, verify]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, verify]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, verify]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, verify]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [deriveKey]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [encrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [decrypt, encrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, encrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, encrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [decrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, decrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, decrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, deriveKey]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, deriveKey]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, deriveKey]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [deriveBits]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [encrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [decrypt, encrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, encrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, encrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [decrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, decrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, decrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, deriveBits]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, deriveBits]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, deriveBits]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits]) 
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [encrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [decrypt, encrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, encrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, encrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [decrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, decrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, decrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [encrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [decrypt, encrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, encrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, encrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [decrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, decrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, decrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [encrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [decrypt, encrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, encrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, encrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [decrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, decrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, decrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [encrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [decrypt, encrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, encrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, encrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [decrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, decrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, decrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [encrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [decrypt, encrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, encrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, encrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [decrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, decrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, decrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [encrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [decrypt, encrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, encrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, encrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [decrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, decrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, decrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [encrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [decrypt, encrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, encrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, encrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [decrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, decrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, decrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [encrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [decrypt, encrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, encrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, encrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [decrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, decrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, decrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [encrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [decrypt, encrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, encrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, encrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [decrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, decrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, decrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [encrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [decrypt, encrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, encrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, encrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [decrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, decrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, decrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [encrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [decrypt, encrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, encrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, encrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [decrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, decrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, decrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [encrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [decrypt, encrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, encrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, encrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [decrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, decrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, decrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [encrypt]) 
+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, encrypt]) 
+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, wrapKey, encrypt]) 
+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, encrypt]) 
+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, encrypt]) 
+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [decrypt]) 
+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, decrypt]) 
+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, wrapKey, decrypt]) 
+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, decrypt]) 
+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, decrypt]) 
+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [sign]) 
+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, sign]) 
+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, wrapKey, sign]) 
+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, sign]) 
+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, sign]) 
+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [verify]) 
+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, verify]) 
+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, wrapKey, verify]) 
+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, verify]) 
+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, verify]) 
+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [deriveKey]) 
+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, deriveKey]) 
+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, wrapKey, deriveKey]) 
+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, deriveKey]) 
+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, deriveKey]) 
+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [deriveBits]) 
+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, deriveBits]) 
+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, wrapKey, deriveBits]) 
+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, deriveBits]) 
+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, deriveBits]) 
+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [encrypt]) 
+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, encrypt]) 
+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, wrapKey, encrypt]) 
+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, encrypt]) 
+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, encrypt]) 
+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [decrypt]) 
+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, decrypt]) 
+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, wrapKey, decrypt]) 
+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, decrypt]) 
+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, decrypt]) 
+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [sign]) 
+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, sign]) 
+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, wrapKey, sign]) 
+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, sign]) 
+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, sign]) 
+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [verify]) 
+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, verify]) 
+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, wrapKey, verify]) 
+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, verify]) 
+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, verify]) 
+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [deriveKey]) 
+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, deriveKey]) 
+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, wrapKey, deriveKey]) 
+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, deriveKey]) 
+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, deriveKey]) 
+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [deriveBits]) 
+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, deriveBits]) 
+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, wrapKey, deriveBits]) 
+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, deriveBits]) 
+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, deriveBits]) 
+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [encrypt]) 
+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, encrypt]) 
+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, wrapKey, encrypt]) 
+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, encrypt]) 
+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, encrypt]) 
+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [decrypt]) 
+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, decrypt]) 
+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, wrapKey, decrypt]) 
+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, decrypt]) 
+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, decrypt]) 
+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [sign]) 
+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, sign]) 
+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, wrapKey, sign]) 
+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, sign]) 
+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, sign]) 
+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [verify]) 
+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, verify]) 
+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, wrapKey, verify]) 
+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, verify]) 
+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, verify]) 
+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [deriveKey]) 
+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, deriveKey]) 
+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, wrapKey, deriveKey]) 
+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, deriveKey]) 
+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, deriveKey]) 
+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [deriveBits]) 
+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, deriveBits]) 
+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, wrapKey, deriveBits]) 
+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, deriveBits]) 
+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [encrypt]) 
+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, encrypt]) 
+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, sign, encrypt]) 
+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, encrypt]) 
+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, verify, sign, verify, encrypt]) 
+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [decrypt]) 
+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, decrypt]) 
+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, sign, decrypt]) 
+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, decrypt]) 
+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, verify, sign, verify, decrypt]) 
+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [wrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, wrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, sign, wrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, wrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, verify, sign, verify, wrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [unwrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, unwrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, sign, unwrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, unwrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, verify, sign, verify, unwrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, sign, deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, verify, sign, verify, deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, sign, deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, verify, sign, verify, deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [encrypt]) 
+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, encrypt]) 
+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, sign, encrypt]) 
+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, encrypt]) 
+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, verify, sign, verify, encrypt]) 
+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [decrypt]) 
+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, decrypt]) 
+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, sign, decrypt]) 
+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, decrypt]) 
+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, verify, sign, verify, decrypt]) 
+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [wrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, wrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, sign, wrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, wrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, verify, sign, verify, wrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [unwrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, unwrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, sign, unwrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, unwrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, verify, sign, verify, unwrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, sign, deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, verify, sign, verify, deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, sign, deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, verify, sign, verify, deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [encrypt]) 
+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, encrypt]) 
+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, sign, encrypt]) 
+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, encrypt]) 
+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, verify, sign, verify, encrypt]) 
+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [decrypt]) 
+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, decrypt]) 
+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, sign, decrypt]) 
+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, decrypt]) 
+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, verify, sign, verify, decrypt]) 
+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [wrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, wrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, sign, wrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, wrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, verify, sign, verify, wrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [unwrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, unwrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, sign, unwrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, unwrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, verify, sign, verify, unwrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, sign, deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, verify, sign, verify, deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, sign, deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, verify, sign, verify, deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [encrypt]) 
+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, encrypt]) 
+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, sign, encrypt]) 
+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, encrypt]) 
+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, verify, sign, verify, encrypt]) 
+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [decrypt]) 
+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, decrypt]) 
+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, sign, decrypt]) 
+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, decrypt]) 
+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, verify, sign, verify, decrypt]) 
+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [wrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, wrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, sign, wrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, wrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, verify, sign, verify, wrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [unwrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, unwrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, sign, unwrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, unwrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, verify, sign, verify, unwrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, sign, deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, verify, sign, verify, deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, sign, deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, verify, sign, verify, deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, encrypt]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, encrypt]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, encrypt]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, decrypt]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, decrypt]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, wrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, wrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, wrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, unwrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, unwrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, unwrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, encrypt]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, encrypt]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, encrypt]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, decrypt]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, decrypt]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, wrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, wrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, wrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, unwrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, unwrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, unwrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, deriveBits]) 
+FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, encrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, encrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, encrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, decrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, decrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, wrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, wrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, wrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, unwrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, unwrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, unwrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, encrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, encrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, encrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, decrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, decrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, wrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, wrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, wrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, unwrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, unwrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, unwrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, encrypt, sign]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, encrypt, sign]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, encrypt, sign]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, encrypt, sign]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, encrypt, sign]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, sign]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, sign]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, sign]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, sign]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, sign]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, encrypt, verify]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, encrypt, verify]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, encrypt, verify]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, encrypt, verify]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, encrypt, verify]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, verify]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, verify]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, verify]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, verify]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, verify]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, verify]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, encrypt, deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, encrypt, deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, encrypt, deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, encrypt, deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, encrypt, deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, encrypt, deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, encrypt, deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, encrypt, deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, encrypt, deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, encrypt, deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, encrypt, sign]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, encrypt, sign]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, encrypt, sign]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, encrypt, sign]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, encrypt, sign]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, sign]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, sign]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, sign]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, sign]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, sign]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, encrypt, verify]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, encrypt, verify]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, encrypt, verify]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, encrypt, verify]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, encrypt, verify]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, verify]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, verify]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, verify]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, verify]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, verify]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, verify]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, encrypt, deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, encrypt, deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, encrypt, deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, encrypt, deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, encrypt, deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, encrypt, deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, encrypt, deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, encrypt, deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, encrypt, deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, encrypt, deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits]) 
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [encrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, encrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [verify, sign, encrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, verify, sign, sign, verify, encrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [decrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, decrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [verify, sign, decrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, verify, sign, sign, verify, decrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [wrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, wrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [verify, sign, wrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, verify, sign, sign, verify, wrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [unwrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, unwrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [verify, sign, unwrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, verify, sign, sign, verify, unwrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [verify, sign, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, verify, sign, sign, verify, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [verify, sign, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, verify, sign, sign, verify, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [encrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, encrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [verify, sign, encrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, verify, sign, sign, verify, encrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [decrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, decrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [verify, sign, decrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, verify, sign, sign, verify, decrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [wrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, wrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [verify, sign, wrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, verify, sign, sign, verify, wrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [unwrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, unwrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [verify, sign, unwrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, verify, sign, sign, verify, unwrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [verify, sign, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, verify, sign, sign, verify, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [verify, sign, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, verify, sign, sign, verify, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [encrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, encrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [verify, sign, encrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, verify, sign, sign, verify, encrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [decrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, decrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [verify, sign, decrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, verify, sign, sign, verify, decrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [wrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, wrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [verify, sign, wrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, verify, sign, sign, verify, wrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [unwrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, unwrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [verify, sign, unwrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, verify, sign, sign, verify, unwrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [verify, sign, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, verify, sign, sign, verify, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [verify, sign, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, verify, sign, sign, verify, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [encrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, encrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, deriveKey, encrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, encrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, encrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [decrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, decrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, deriveKey, decrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, decrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, decrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, deriveKey, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, deriveKey, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [wrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, wrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, deriveKey, wrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, wrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, wrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [unwrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, unwrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, deriveKey, unwrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, unwrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, unwrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [encrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, encrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, deriveKey, encrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, encrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, encrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [decrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, decrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, deriveKey, decrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, decrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, decrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, deriveKey, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, deriveKey, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [wrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, wrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, deriveKey, wrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, wrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, wrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [unwrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, unwrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, deriveKey, unwrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, unwrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, unwrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [encrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, encrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, deriveKey, encrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, encrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, encrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [decrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, decrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, deriveKey, decrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, decrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, decrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, deriveKey, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, deriveKey, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [wrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, wrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, deriveKey, wrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, wrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, wrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [unwrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, unwrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, deriveKey, unwrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, unwrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, unwrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [wrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [wrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [unwrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [wrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [wrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [unwrapKey, wrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [unwrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [unwrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [wrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [wrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [unwrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [unwrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [wrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [wrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [unwrapKey, wrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [unwrapKey, wrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [unwrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [unwrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, []) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, []) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [wrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [wrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [unwrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [wrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [wrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [unwrapKey, wrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [unwrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [unwrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [wrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [wrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [unwrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [unwrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [wrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [wrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [unwrapKey, wrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [unwrapKey, wrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [unwrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [unwrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, []) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, []) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [wrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [wrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [unwrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [wrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [wrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [unwrapKey, wrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [unwrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [unwrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [wrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [wrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [unwrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [unwrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [wrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [wrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [unwrapKey, wrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [unwrapKey, wrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [unwrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [unwrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, []) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, []) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [wrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [wrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [unwrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [wrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [wrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [unwrapKey, wrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [unwrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [unwrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [wrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [wrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [unwrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [unwrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [wrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [wrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [unwrapKey, wrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [unwrapKey, wrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [unwrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [unwrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, []) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, []) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [wrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [wrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [unwrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [wrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [wrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [unwrapKey, wrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [unwrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [unwrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [wrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [wrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [unwrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [unwrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [wrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [wrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [unwrapKey, wrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [unwrapKey, wrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [unwrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [unwrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, []) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, []) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [wrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [wrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [unwrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [wrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [wrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [unwrapKey, wrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [unwrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [unwrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [wrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [wrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [unwrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [unwrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [wrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [wrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [unwrapKey, wrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [unwrapKey, wrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [unwrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [unwrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, []) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, []) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [encrypt]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [encrypt]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [unwrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [wrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [wrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [unwrapKey, wrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [unwrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [unwrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [decrypt]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [decrypt]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [unwrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [unwrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [unwrapKey, wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [unwrapKey, wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, []) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, []) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [encrypt]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [encrypt]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [unwrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [wrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [wrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [unwrapKey, wrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [unwrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [unwrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [decrypt]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [decrypt]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [unwrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [unwrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [unwrapKey, wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [unwrapKey, wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, []) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, []) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [encrypt]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [encrypt]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [unwrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [wrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [wrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [unwrapKey, wrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [unwrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [unwrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [decrypt]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [decrypt]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [unwrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [unwrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [unwrapKey, wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [unwrapKey, wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, []) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, []) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [encrypt]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [encrypt]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [unwrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [wrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [wrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [unwrapKey, wrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [unwrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [unwrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [decrypt]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [decrypt]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [unwrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [unwrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [unwrapKey, wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [unwrapKey, wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, []) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, []) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [encrypt]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [encrypt]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [unwrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [wrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [wrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [unwrapKey, wrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [unwrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [unwrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [decrypt]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [decrypt]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [unwrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [unwrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [unwrapKey, wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [unwrapKey, wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, []) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, []) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [encrypt]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [encrypt]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [unwrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [wrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [wrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [unwrapKey, wrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [unwrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [unwrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [decrypt]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [decrypt]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [unwrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [unwrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [unwrapKey, wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [unwrapKey, wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, []) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, []) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [wrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [wrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [unwrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [wrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [wrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [unwrapKey, wrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [unwrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [unwrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [wrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [wrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [unwrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [unwrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [wrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [wrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [unwrapKey, wrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [unwrapKey, wrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [unwrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [unwrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, []) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, []) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [wrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [wrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [unwrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [wrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [wrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [unwrapKey, wrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [unwrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [unwrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [wrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [wrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [unwrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [unwrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [wrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [wrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [unwrapKey, wrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [unwrapKey, wrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [unwrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [unwrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, []) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, []) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [wrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [wrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [unwrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [wrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [wrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [unwrapKey, wrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [unwrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [unwrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [wrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [wrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [unwrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [unwrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [wrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [wrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [unwrapKey, wrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [unwrapKey, wrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [unwrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [unwrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, []) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, []) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [wrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [wrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [unwrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [wrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [wrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [unwrapKey, wrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [unwrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [unwrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [wrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [wrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [unwrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [unwrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [wrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [wrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [unwrapKey, wrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [unwrapKey, wrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [unwrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [unwrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, []) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, []) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [wrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [wrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [unwrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [wrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [wrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [unwrapKey, wrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [unwrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [unwrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [wrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [wrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [unwrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [unwrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [wrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [wrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [unwrapKey, wrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [unwrapKey, wrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [unwrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [unwrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, []) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, []) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [wrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [wrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [unwrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [wrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [wrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [unwrapKey, wrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [unwrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [unwrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [wrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [wrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [unwrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [unwrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [wrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [wrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [unwrapKey, wrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [unwrapKey, wrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [unwrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [unwrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, []) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, []) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+PASS Bad algorithm property: generateKey({length: 64, name: AES-KW}, false, [wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-KW}, true, [wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-KW}, false, [unwrapKey, wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-KW}, true, [unwrapKey, wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-KW}, false, [unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-KW}, true, [unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-KW}, false, []) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-KW}, true, []) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-KW}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-KW}, false, [wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-KW}, true, [wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-KW}, false, [unwrapKey, wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-KW}, true, [unwrapKey, wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-KW}, false, [unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-KW}, true, [unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-KW}, false, []) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-KW}, true, []) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-KW}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-KW}, false, [wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-KW}, true, [wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-KW}, false, [unwrapKey, wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-KW}, true, [unwrapKey, wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-KW}, false, [unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-KW}, true, [unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-KW}, false, []) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-KW}, true, []) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-KW}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-KW}, false, [wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-KW}, true, [wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-KW}, false, [unwrapKey, wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-KW}, true, [unwrapKey, wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-KW}, false, [unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-KW}, true, [unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-KW}, false, []) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-KW}, true, []) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-KW}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-KW}, false, [wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-KW}, true, [wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-KW}, false, [unwrapKey, wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-KW}, true, [unwrapKey, wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-KW}, false, [unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-KW}, true, [unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-KW}, false, []) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-KW}, true, []) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-KW}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-KW}, false, [wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-KW}, true, [wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-KW}, false, [unwrapKey, wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-KW}, true, [unwrapKey, wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-KW}, false, [unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-KW}, true, [unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-KW}, false, []) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-KW}, true, []) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-KW}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1}}, false, [sign]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1}}, true, [sign]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1}}, false, [verify, sign]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1}}, true, [verify, sign]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1}}, false, []) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1}}, true, []) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1}}, false, [sign, verify, sign, sign, verify]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1}}, true, [sign, verify, sign, sign, verify]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [sign]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [sign]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [verify, sign]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [verify, sign]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 0}}, false, []) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 0}}, true, []) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [sign, verify, sign, sign, verify]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [sign, verify, sign, sign, verify]) 
+FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1}}, false, [sign]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1}}, true, [sign]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1}}, false, [verify, sign]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1}}, true, [verify, sign]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1}}, false, []) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1}}, true, []) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1}}, false, [sign, verify, sign, sign, verify]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1}}, true, [sign, verify, sign, sign, verify]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [sign]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [sign]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [verify, sign]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [verify, sign]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 0}}, false, []) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 0}}, true, []) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [sign, verify, sign, sign, verify]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [sign, verify, sign, sign, verify]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, [decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, [decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, [wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, [wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, [unwrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, [unwrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, [unwrapKey, wrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, [unwrapKey, wrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, [unwrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, [unwrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, [decrypt]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, [decrypt]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, [wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, [wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, [unwrapKey, wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, [unwrapKey, wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, [unwrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, [unwrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, [unwrapKey, wrapKey]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, [unwrapKey, wrapKey]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, [unwrapKey]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, [unwrapKey]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, []) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, []) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [unwrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [unwrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [unwrapKey, wrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [unwrapKey, wrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [unwrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [unwrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [decrypt]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [decrypt]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [unwrapKey, wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [unwrapKey, wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [unwrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [unwrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [unwrapKey, wrapKey]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [unwrapKey, wrapKey]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [unwrapKey]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [unwrapKey]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, []) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, []) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: P-512}, false, [sign]) 
+PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: P-512}, true, [sign]) 
+PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: P-512}, false, [verify, sign]) 
+PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: P-512}, true, [verify, sign]) 
+PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: P-512}, false, []) 
+PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: P-512}, true, []) 
+PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: P-512}, false, [sign, verify, sign, sign, verify]) 
+PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: P-512}, true, [sign, verify, sign, sign, verify]) 
+PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: Curve25519}, false, [sign]) 
+PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: Curve25519}, true, [sign]) 
+PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: Curve25519}, false, [verify, sign]) 
+PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: Curve25519}, true, [verify, sign]) 
+PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: Curve25519}, false, []) 
+PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: Curve25519}, true, []) 
+PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: Curve25519}, false, [sign, verify, sign, sign, verify]) 
+PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: Curve25519}, true, [sign, verify, sign, sign, verify]) 
+PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: P-512}, false, [deriveKey]) 
+PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: P-512}, true, [deriveKey]) 
+PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: P-512}, false, [deriveBits, deriveKey]) 
+PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: P-512}, true, [deriveBits, deriveKey]) 
+PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: P-512}, false, [deriveBits]) 
+PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: P-512}, true, [deriveBits]) 
+PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: P-512}, false, []) 
+PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: P-512}, true, []) 
+PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: P-512}, false, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) 
+PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: P-512}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) 
+PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: Curve25519}, false, [deriveKey]) 
+PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: Curve25519}, true, [deriveKey]) 
+PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: Curve25519}, false, [deriveBits, deriveKey]) 
+PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: Curve25519}, true, [deriveBits, deriveKey]) 
+PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: Curve25519}, false, [deriveBits]) 
+PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: Curve25519}, true, [deriveBits]) 
+PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: Curve25519}, false, []) 
+PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: Curve25519}, true, []) 
+PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: Curve25519}, false, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) 
+PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: Curve25519}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) 
+FAIL Empty usages: generateKey({length: 128, name: AES-CTR}, false, []) assert_equals: Empty usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Empty usages: generateKey({length: 128, name: AES-CTR}, true, []) assert_equals: Empty usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Empty usages: generateKey({length: 192, name: AES-CTR}, false, []) assert_equals: Empty usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Empty usages: generateKey({length: 192, name: AES-CTR}, true, []) assert_equals: Empty usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Empty usages: generateKey({length: 256, name: AES-CTR}, false, []) assert_equals: Empty usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Empty usages: generateKey({length: 256, name: AES-CTR}, true, []) assert_equals: Empty usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+PASS Empty usages: generateKey({length: 128, name: AES-CBC}, false, []) 
+PASS Empty usages: generateKey({length: 128, name: AES-CBC}, true, []) 
+PASS Empty usages: generateKey({length: 192, name: AES-CBC}, false, []) 
+PASS Empty usages: generateKey({length: 192, name: AES-CBC}, true, []) 
+PASS Empty usages: generateKey({length: 256, name: AES-CBC}, false, []) 
+PASS Empty usages: generateKey({length: 256, name: AES-CBC}, true, []) 
+FAIL Empty usages: generateKey({length: 128, name: AES-GCM}, false, []) assert_equals: Empty usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Empty usages: generateKey({length: 128, name: AES-GCM}, true, []) assert_equals: Empty usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Empty usages: generateKey({length: 192, name: AES-GCM}, false, []) assert_equals: Empty usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Empty usages: generateKey({length: 192, name: AES-GCM}, true, []) assert_equals: Empty usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Empty usages: generateKey({length: 256, name: AES-GCM}, false, []) assert_equals: Empty usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Empty usages: generateKey({length: 256, name: AES-GCM}, true, []) assert_equals: Empty usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+PASS Empty usages: generateKey({length: 128, name: AES-KW}, false, []) 
+PASS Empty usages: generateKey({length: 128, name: AES-KW}, true, []) 
+PASS Empty usages: generateKey({length: 192, name: AES-KW}, false, []) 
+PASS Empty usages: generateKey({length: 192, name: AES-KW}, true, []) 
+PASS Empty usages: generateKey({length: 256, name: AES-KW}, false, []) 
+PASS Empty usages: generateKey({length: 256, name: AES-KW}, true, []) 
+PASS Empty usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, false, []) 
+PASS Empty usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, []) 
+PASS Empty usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, false, []) 
+PASS Empty usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, []) 
+PASS Empty usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, false, []) 
+PASS Empty usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, []) 
+PASS Empty usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, false, []) 
+PASS Empty usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, []) 
+PASS Empty usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) 
+PASS Empty usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) 
+PASS Empty usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) 
+PASS Empty usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) 
+FAIL Empty usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) assert_equals: Empty usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Empty usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) assert_equals: Empty usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Empty usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) assert_equals: Empty usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Empty usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) assert_equals: Empty usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+PASS Empty usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) 
+PASS Empty usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) 
+PASS Empty usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) 
+PASS Empty usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) 
+FAIL Empty usages: generateKey({name: ECDSA, namedCurve: P-256}, false, []) assert_equals: Empty usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Empty usages: generateKey({name: ECDSA, namedCurve: P-256}, true, []) assert_equals: Empty usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Empty usages: generateKey({name: ECDSA, namedCurve: P-384}, false, []) assert_equals: Empty usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Empty usages: generateKey({name: ECDSA, namedCurve: P-384}, true, []) assert_equals: Empty usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Empty usages: generateKey({name: ECDSA, namedCurve: P-521}, false, []) assert_equals: Empty usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Empty usages: generateKey({name: ECDSA, namedCurve: P-521}, true, []) assert_equals: Empty usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Empty usages: generateKey({name: ECDH, namedCurve: P-256}, false, []) assert_equals: Empty usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Empty usages: generateKey({name: ECDH, namedCurve: P-256}, true, []) assert_equals: Empty usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Empty usages: generateKey({name: ECDH, namedCurve: P-384}, false, []) assert_equals: Empty usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Empty usages: generateKey({name: ECDH, namedCurve: P-384}, true, []) assert_equals: Empty usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Empty usages: generateKey({name: ECDH, namedCurve: P-521}, false, []) assert_equals: Empty usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Empty usages: generateKey({name: ECDH, namedCurve: P-521}, true, []) assert_equals: Empty usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cWebCryptoAPIgenerateKeytest_failureshtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_failures.html (207808 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_failures.html        2016-10-25 05:26:35 UTC (rev 207808)
+++ trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_failures.html        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -7,7 +7,7 @@
</span><span class="cx"> &lt;script src=&quot;../../../../resources/testharness.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> 
</span><del>-&lt;script src=&quot;/WebCryptoAPI/util/helpers.js&quot;&gt;&lt;/script&gt;
</del><ins>+&lt;script src=&quot;../util/helpers.js&quot;&gt;&lt;/script&gt;
</ins><span class="cx"> &lt;script src=&quot;failures.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> 
</span><span class="cx"> &lt;h1&gt;generateKey Tests for Bad Parameters&lt;/h1&gt;
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cWebCryptoAPIgenerateKeytest_failures_AESCBCexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_failures_AES-CBC-expected.txt (207808 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_failures_AES-CBC-expected.txt        2016-10-25 05:26:35 UTC (rev 207808)
+++ trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_failures_AES-CBC-expected.txt        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -1,3 +1,742 @@
</span><del>-CONSOLE MESSAGE: line 25: ReferenceError: Can't find variable: CryptoKey
-FAIL: Timed out waiting for notifyDone to be called
</del><ins>+generateKey Tests for Bad Parameters
</ins><span class="cx"> 
</span><ins>+
+PASS Bad algorithm: generateKey(AES, false, [decrypt]) 
+PASS Bad algorithm: generateKey(AES, true, [decrypt]) 
+PASS Bad algorithm: generateKey(AES, RED, [decrypt]) 
+PASS Bad algorithm: generateKey(AES, 7, [decrypt]) 
+PASS Bad algorithm: generateKey(AES, false, [sign, decrypt]) 
+PASS Bad algorithm: generateKey(AES, true, [sign, decrypt]) 
+PASS Bad algorithm: generateKey(AES, RED, [sign, decrypt]) 
+PASS Bad algorithm: generateKey(AES, 7, [sign, decrypt]) 
+PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey(AES, false, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey(AES, true, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey(AES, RED, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey(AES, 7, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey(AES, false, [sign]) 
+PASS Bad algorithm: generateKey(AES, true, [sign]) 
+PASS Bad algorithm: generateKey(AES, RED, [sign]) 
+PASS Bad algorithm: generateKey(AES, 7, [sign]) 
+PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey(AES, false, [deriveBits]) 
+PASS Bad algorithm: generateKey(AES, true, [deriveBits]) 
+PASS Bad algorithm: generateKey(AES, RED, [deriveBits]) 
+PASS Bad algorithm: generateKey(AES, 7, [deriveBits]) 
+PASS Bad algorithm: generateKey(AES, false, []) 
+PASS Bad algorithm: generateKey(AES, true, []) 
+PASS Bad algorithm: generateKey(AES, RED, []) 
+PASS Bad algorithm: generateKey(AES, 7, []) 
+PASS Bad algorithm: generateKey(AES, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey(AES, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey(AES, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey(AES, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({name: AES}, false, [decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, true, [decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, false, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, true, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, RED, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, 7, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, false, [sign]) 
+PASS Bad algorithm: generateKey({name: AES}, true, [sign]) 
+PASS Bad algorithm: generateKey({name: AES}, RED, [sign]) 
+PASS Bad algorithm: generateKey({name: AES}, 7, [sign]) 
+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits]) 
+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits]) 
+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits]) 
+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits]) 
+PASS Bad algorithm: generateKey({name: AES}, false, []) 
+PASS Bad algorithm: generateKey({name: AES}, true, []) 
+PASS Bad algorithm: generateKey({name: AES}, RED, []) 
+PASS Bad algorithm: generateKey({name: AES}, 7, []) 
+PASS Bad algorithm: generateKey({name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, []) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, []) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, []) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, []) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, []) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, []) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, []) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, []) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [sign]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [encrypt, sign]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [decrypt, encrypt, sign]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, sign]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, sign]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, encrypt, sign]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, sign]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, encrypt, sign]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [decrypt, sign]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, decrypt, sign]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, sign]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, decrypt, sign]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, sign]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, sign]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, sign]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [verify]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [encrypt, verify]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [decrypt, encrypt, verify]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, verify]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, verify]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, encrypt, verify]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, verify]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, encrypt, verify]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [decrypt, verify]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, decrypt, verify]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, verify]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, decrypt, verify]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, verify]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, verify]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, verify]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [deriveKey]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [encrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [decrypt, encrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, encrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, encrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [decrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, decrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, decrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, deriveKey]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, deriveKey]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, deriveKey]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [deriveBits]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [encrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [decrypt, encrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, encrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, encrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [decrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, decrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, decrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, deriveBits]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, deriveBits]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, deriveBits]) 
+PASS Bad usages: generateKey({length: 128, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [sign]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [encrypt, sign]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [decrypt, encrypt, sign]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, sign]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, sign]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, encrypt, sign]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, sign]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, encrypt, sign]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [decrypt, sign]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, decrypt, sign]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, sign]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, decrypt, sign]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, sign]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, sign]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, sign]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [verify]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [encrypt, verify]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [decrypt, encrypt, verify]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, verify]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, verify]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, encrypt, verify]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, verify]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, encrypt, verify]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [decrypt, verify]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, decrypt, verify]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, verify]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, decrypt, verify]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, verify]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, verify]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, verify]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [deriveKey]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [encrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [decrypt, encrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, encrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, encrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [decrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, decrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, decrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, deriveKey]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, deriveKey]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, deriveKey]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [deriveBits]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [encrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [decrypt, encrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, encrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, encrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [decrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, decrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, decrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, deriveBits]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, deriveBits]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, deriveBits]) 
+PASS Bad usages: generateKey({length: 192, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [sign]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [encrypt, sign]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [decrypt, encrypt, sign]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, sign]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, sign]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, encrypt, sign]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, sign]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, encrypt, sign]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [decrypt, sign]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, decrypt, sign]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, sign]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, decrypt, sign]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, sign]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, sign]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, sign]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [verify]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [encrypt, verify]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [decrypt, encrypt, verify]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, verify]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, verify]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, encrypt, verify]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, verify]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, encrypt, verify]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [decrypt, verify]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, decrypt, verify]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, verify]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, decrypt, verify]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, verify]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, verify]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, verify]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [deriveKey]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [encrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [decrypt, encrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, encrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, encrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [decrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, decrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, decrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, deriveKey]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, deriveKey]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, deriveKey]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [deriveBits]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [encrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [decrypt, encrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, decrypt, encrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, encrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, encrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [decrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, decrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, decrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, deriveBits]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, deriveBits]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, deriveBits]) 
+PASS Bad usages: generateKey({length: 256, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [encrypt]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [encrypt]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [unwrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [wrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [wrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [unwrapKey, wrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [unwrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [unwrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [decrypt]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [decrypt]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [unwrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [unwrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [unwrapKey, wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [unwrapKey, wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, []) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, []) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [encrypt]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [encrypt]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [unwrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [wrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [wrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [unwrapKey, wrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [unwrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [unwrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [decrypt]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [decrypt]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [unwrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [unwrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [unwrapKey, wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [unwrapKey, wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, []) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, []) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [encrypt]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [encrypt]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [unwrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [wrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [wrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [unwrapKey, wrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [unwrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [unwrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [decrypt]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [decrypt]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [unwrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [unwrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [unwrapKey, wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [unwrapKey, wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, []) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, []) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [encrypt]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [encrypt]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [unwrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [wrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [wrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [unwrapKey, wrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [unwrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [unwrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [decrypt]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [decrypt]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [unwrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [unwrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [unwrapKey, wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [unwrapKey, wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, []) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, []) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [encrypt]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [encrypt]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [unwrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [wrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [wrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [unwrapKey, wrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [unwrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [unwrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [decrypt]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [decrypt]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [unwrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [unwrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [unwrapKey, wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [unwrapKey, wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, []) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, []) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [encrypt]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [encrypt]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [unwrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [wrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [wrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [unwrapKey, wrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [unwrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [unwrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [decrypt]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [decrypt]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [unwrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [unwrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [unwrapKey, wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [unwrapKey, wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, []) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, []) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Empty usages: generateKey({length: 128, name: AES-CBC}, false, []) 
+PASS Empty usages: generateKey({length: 128, name: AES-CBC}, true, []) 
+PASS Empty usages: generateKey({length: 192, name: AES-CBC}, false, []) 
+PASS Empty usages: generateKey({length: 192, name: AES-CBC}, true, []) 
+PASS Empty usages: generateKey({length: 256, name: AES-CBC}, false, []) 
+PASS Empty usages: generateKey({length: 256, name: AES-CBC}, true, []) 
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cWebCryptoAPIgenerateKeytest_failures_AESCBChtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_failures_AES-CBC.html (207808 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_failures_AES-CBC.html        2016-10-25 05:26:35 UTC (rev 207808)
+++ trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_failures_AES-CBC.html        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -7,7 +7,7 @@
</span><span class="cx"> &lt;script src=&quot;../../../../resources/testharness.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> 
</span><del>-&lt;script src=&quot;/WebCryptoAPI/util/helpers.js&quot;&gt;&lt;/script&gt;
</del><ins>+&lt;script src=&quot;../util/helpers.js&quot;&gt;&lt;/script&gt;
</ins><span class="cx"> &lt;script src=&quot;failures.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> 
</span><span class="cx"> &lt;h1&gt;generateKey Tests for Bad Parameters&lt;/h1&gt;
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cWebCryptoAPIgenerateKeytest_failures_AESCTRexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_failures_AES-CTR-expected.txt (207808 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_failures_AES-CTR-expected.txt        2016-10-25 05:26:35 UTC (rev 207808)
+++ trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_failures_AES-CTR-expected.txt        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -1,3 +1,742 @@
</span><del>-CONSOLE MESSAGE: line 25: ReferenceError: Can't find variable: CryptoKey
-FAIL: Timed out waiting for notifyDone to be called
</del><ins>+generateKey Tests for Bad Parameters
</ins><span class="cx"> 
</span><ins>+
+PASS Bad algorithm: generateKey(AES, false, [decrypt]) 
+PASS Bad algorithm: generateKey(AES, true, [decrypt]) 
+PASS Bad algorithm: generateKey(AES, RED, [decrypt]) 
+PASS Bad algorithm: generateKey(AES, 7, [decrypt]) 
+PASS Bad algorithm: generateKey(AES, false, [sign, decrypt]) 
+PASS Bad algorithm: generateKey(AES, true, [sign, decrypt]) 
+PASS Bad algorithm: generateKey(AES, RED, [sign, decrypt]) 
+PASS Bad algorithm: generateKey(AES, 7, [sign, decrypt]) 
+PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey(AES, false, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey(AES, true, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey(AES, RED, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey(AES, 7, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey(AES, false, [sign]) 
+PASS Bad algorithm: generateKey(AES, true, [sign]) 
+PASS Bad algorithm: generateKey(AES, RED, [sign]) 
+PASS Bad algorithm: generateKey(AES, 7, [sign]) 
+PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey(AES, false, [deriveBits]) 
+PASS Bad algorithm: generateKey(AES, true, [deriveBits]) 
+PASS Bad algorithm: generateKey(AES, RED, [deriveBits]) 
+PASS Bad algorithm: generateKey(AES, 7, [deriveBits]) 
+PASS Bad algorithm: generateKey(AES, false, []) 
+PASS Bad algorithm: generateKey(AES, true, []) 
+PASS Bad algorithm: generateKey(AES, RED, []) 
+PASS Bad algorithm: generateKey(AES, 7, []) 
+PASS Bad algorithm: generateKey(AES, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey(AES, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey(AES, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey(AES, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({name: AES}, false, [decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, true, [decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, false, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, true, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, RED, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, 7, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, false, [sign]) 
+PASS Bad algorithm: generateKey({name: AES}, true, [sign]) 
+PASS Bad algorithm: generateKey({name: AES}, RED, [sign]) 
+PASS Bad algorithm: generateKey({name: AES}, 7, [sign]) 
+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits]) 
+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits]) 
+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits]) 
+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits]) 
+PASS Bad algorithm: generateKey({name: AES}, false, []) 
+PASS Bad algorithm: generateKey({name: AES}, true, []) 
+PASS Bad algorithm: generateKey({name: AES}, RED, []) 
+PASS Bad algorithm: generateKey({name: AES}, 7, []) 
+PASS Bad algorithm: generateKey({name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, []) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, []) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, []) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, []) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, []) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, []) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, []) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, []) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [encrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [decrypt, encrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, encrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, encrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [decrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, decrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, decrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [encrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [decrypt, encrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, encrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, encrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [decrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, decrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, decrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [encrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [decrypt, encrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, encrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, encrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [decrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, decrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, decrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [encrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [decrypt, encrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, encrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, encrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [decrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, decrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, decrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [encrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [decrypt, encrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, encrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, encrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [decrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, decrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, decrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [encrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [decrypt, encrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, encrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, encrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [decrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, decrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, decrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [encrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [decrypt, encrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, encrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, encrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [decrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, decrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, decrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [encrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [decrypt, encrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, encrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, encrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [decrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, decrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, decrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [encrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [decrypt, encrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, encrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, encrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [decrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, decrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, decrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [encrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [decrypt, encrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, encrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, encrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [decrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, decrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, decrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [encrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [decrypt, encrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, encrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, encrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [decrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, decrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, decrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [encrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [decrypt, encrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, decrypt, encrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, encrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, encrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [decrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, decrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, decrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [wrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [wrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [unwrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [wrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [wrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [unwrapKey, wrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [unwrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [unwrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [wrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [wrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [unwrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [unwrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [wrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [wrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [unwrapKey, wrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [unwrapKey, wrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [unwrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [unwrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, []) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, []) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [wrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [wrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [unwrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [wrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [wrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [unwrapKey, wrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [unwrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [unwrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [wrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [wrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [unwrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [unwrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [wrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [wrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [unwrapKey, wrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [unwrapKey, wrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [unwrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [unwrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, []) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, []) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [wrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [wrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [unwrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [wrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [wrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [unwrapKey, wrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [unwrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [unwrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [wrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [wrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [unwrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [unwrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [wrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [wrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [unwrapKey, wrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [unwrapKey, wrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [unwrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [unwrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, []) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, []) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [wrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [wrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [unwrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [wrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [wrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [unwrapKey, wrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [unwrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [unwrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [wrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [wrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [unwrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [unwrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [wrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [wrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [unwrapKey, wrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [unwrapKey, wrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [unwrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [unwrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, []) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, []) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [wrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [wrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [unwrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [wrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [wrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [unwrapKey, wrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [unwrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [unwrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [wrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [wrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [unwrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [unwrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [wrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [wrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [unwrapKey, wrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [unwrapKey, wrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [unwrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [unwrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, []) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, []) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [wrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [wrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [unwrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [wrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [wrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [unwrapKey, wrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [unwrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [unwrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [wrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [wrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [unwrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [unwrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [wrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [wrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [unwrapKey, wrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [unwrapKey, wrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [unwrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [unwrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, []) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, []) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Empty usages: generateKey({length: 128, name: AES-CTR}, false, []) assert_equals: Empty usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Empty usages: generateKey({length: 128, name: AES-CTR}, true, []) assert_equals: Empty usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Empty usages: generateKey({length: 192, name: AES-CTR}, false, []) assert_equals: Empty usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Empty usages: generateKey({length: 192, name: AES-CTR}, true, []) assert_equals: Empty usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Empty usages: generateKey({length: 256, name: AES-CTR}, false, []) assert_equals: Empty usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Empty usages: generateKey({length: 256, name: AES-CTR}, true, []) assert_equals: Empty usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cWebCryptoAPIgenerateKeytest_failures_AESCTRhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_failures_AES-CTR.html (207808 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_failures_AES-CTR.html        2016-10-25 05:26:35 UTC (rev 207808)
+++ trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_failures_AES-CTR.html        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -7,7 +7,7 @@
</span><span class="cx"> &lt;script src=&quot;../../../../resources/testharness.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> 
</span><del>-&lt;script src=&quot;/WebCryptoAPI/util/helpers.js&quot;&gt;&lt;/script&gt;
</del><ins>+&lt;script src=&quot;../util/helpers.js&quot;&gt;&lt;/script&gt;
</ins><span class="cx"> &lt;script src=&quot;failures.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> 
</span><span class="cx"> &lt;h1&gt;generateKey Tests for Bad Parameters&lt;/h1&gt;
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cWebCryptoAPIgenerateKeytest_failures_AESGCMexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_failures_AES-GCM-expected.txt (207808 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_failures_AES-GCM-expected.txt        2016-10-25 05:26:35 UTC (rev 207808)
+++ trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_failures_AES-GCM-expected.txt        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -1,3 +1,742 @@
</span><del>-CONSOLE MESSAGE: line 25: ReferenceError: Can't find variable: CryptoKey
-FAIL: Timed out waiting for notifyDone to be called
</del><ins>+generateKey Tests for Bad Parameters
</ins><span class="cx"> 
</span><ins>+
+PASS Bad algorithm: generateKey(AES, false, [decrypt]) 
+PASS Bad algorithm: generateKey(AES, true, [decrypt]) 
+PASS Bad algorithm: generateKey(AES, RED, [decrypt]) 
+PASS Bad algorithm: generateKey(AES, 7, [decrypt]) 
+PASS Bad algorithm: generateKey(AES, false, [sign, decrypt]) 
+PASS Bad algorithm: generateKey(AES, true, [sign, decrypt]) 
+PASS Bad algorithm: generateKey(AES, RED, [sign, decrypt]) 
+PASS Bad algorithm: generateKey(AES, 7, [sign, decrypt]) 
+PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey(AES, false, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey(AES, true, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey(AES, RED, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey(AES, 7, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey(AES, false, [sign]) 
+PASS Bad algorithm: generateKey(AES, true, [sign]) 
+PASS Bad algorithm: generateKey(AES, RED, [sign]) 
+PASS Bad algorithm: generateKey(AES, 7, [sign]) 
+PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey(AES, false, [deriveBits]) 
+PASS Bad algorithm: generateKey(AES, true, [deriveBits]) 
+PASS Bad algorithm: generateKey(AES, RED, [deriveBits]) 
+PASS Bad algorithm: generateKey(AES, 7, [deriveBits]) 
+PASS Bad algorithm: generateKey(AES, false, []) 
+PASS Bad algorithm: generateKey(AES, true, []) 
+PASS Bad algorithm: generateKey(AES, RED, []) 
+PASS Bad algorithm: generateKey(AES, 7, []) 
+PASS Bad algorithm: generateKey(AES, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey(AES, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey(AES, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey(AES, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({name: AES}, false, [decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, true, [decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, false, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, true, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, RED, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, 7, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, false, [sign]) 
+PASS Bad algorithm: generateKey({name: AES}, true, [sign]) 
+PASS Bad algorithm: generateKey({name: AES}, RED, [sign]) 
+PASS Bad algorithm: generateKey({name: AES}, 7, [sign]) 
+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits]) 
+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits]) 
+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits]) 
+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits]) 
+PASS Bad algorithm: generateKey({name: AES}, false, []) 
+PASS Bad algorithm: generateKey({name: AES}, true, []) 
+PASS Bad algorithm: generateKey({name: AES}, RED, []) 
+PASS Bad algorithm: generateKey({name: AES}, 7, []) 
+PASS Bad algorithm: generateKey({name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, []) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, []) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, []) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, []) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, []) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, []) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, []) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, []) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [encrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [decrypt, encrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, encrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, encrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [decrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, decrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, decrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [encrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [decrypt, encrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, encrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, encrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [decrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, decrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, decrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [encrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [decrypt, encrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, encrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, encrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [decrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, decrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, decrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [encrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [decrypt, encrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, encrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, encrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [decrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, decrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, decrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 128, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [encrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [decrypt, encrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, encrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, encrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [decrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, decrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, decrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [encrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [decrypt, encrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, encrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, encrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [decrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, decrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, decrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [encrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [decrypt, encrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, encrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, encrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [decrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, decrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, decrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [encrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [decrypt, encrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, encrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, encrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [decrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, decrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, decrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 192, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [encrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [decrypt, encrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, encrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, encrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [decrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, decrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, decrypt, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [encrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [decrypt, encrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, encrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, encrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [decrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, decrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, decrypt, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [encrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [decrypt, encrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, encrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, encrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [decrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, decrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, decrypt, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [encrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [decrypt, encrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, encrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, encrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [decrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, decrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, decrypt, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({length: 256, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [wrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [wrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [unwrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [wrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [wrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [unwrapKey, wrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [unwrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [unwrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [wrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [wrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [unwrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [unwrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [wrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [wrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [unwrapKey, wrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [unwrapKey, wrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [unwrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [unwrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, []) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, []) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [wrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [wrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [unwrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [wrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [wrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [unwrapKey, wrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [unwrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [unwrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [wrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [wrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [unwrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [unwrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [wrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [wrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [unwrapKey, wrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [unwrapKey, wrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [unwrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [unwrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, []) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, []) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [wrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [wrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [unwrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [wrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [wrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [unwrapKey, wrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [unwrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [unwrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [wrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [wrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [unwrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [unwrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [wrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [wrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [unwrapKey, wrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [unwrapKey, wrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [unwrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [unwrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, []) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, []) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [wrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [wrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [unwrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [wrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [wrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [unwrapKey, wrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [unwrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [unwrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [wrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [wrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [unwrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [unwrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [wrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [wrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [unwrapKey, wrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [unwrapKey, wrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [unwrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [unwrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, []) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, []) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [wrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [wrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [unwrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [wrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [wrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [unwrapKey, wrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [unwrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [unwrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [wrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [wrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [unwrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [unwrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [wrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [wrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [unwrapKey, wrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [unwrapKey, wrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [unwrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [unwrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, []) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, []) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [wrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [wrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [unwrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [wrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [wrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [unwrapKey, wrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [unwrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [unwrapKey, encrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [wrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [wrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [unwrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [unwrapKey, decrypt]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [wrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [wrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [unwrapKey, wrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [unwrapKey, wrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [unwrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [unwrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, []) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, []) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Empty usages: generateKey({length: 128, name: AES-GCM}, false, []) assert_equals: Empty usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Empty usages: generateKey({length: 128, name: AES-GCM}, true, []) assert_equals: Empty usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Empty usages: generateKey({length: 192, name: AES-GCM}, false, []) assert_equals: Empty usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Empty usages: generateKey({length: 192, name: AES-GCM}, true, []) assert_equals: Empty usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Empty usages: generateKey({length: 256, name: AES-GCM}, false, []) assert_equals: Empty usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Empty usages: generateKey({length: 256, name: AES-GCM}, true, []) assert_equals: Empty usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cWebCryptoAPIgenerateKeytest_failures_AESGCMhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_failures_AES-GCM.html (207808 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_failures_AES-GCM.html        2016-10-25 05:26:35 UTC (rev 207808)
+++ trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_failures_AES-GCM.html        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -7,7 +7,7 @@
</span><span class="cx"> &lt;script src=&quot;../../../../resources/testharness.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> 
</span><del>-&lt;script src=&quot;/WebCryptoAPI/util/helpers.js&quot;&gt;&lt;/script&gt;
</del><ins>+&lt;script src=&quot;../util/helpers.js&quot;&gt;&lt;/script&gt;
</ins><span class="cx"> &lt;script src=&quot;failures.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> 
</span><span class="cx"> &lt;h1&gt;generateKey Tests for Bad Parameters&lt;/h1&gt;
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cWebCryptoAPIgenerateKeytest_failures_AESKWexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_failures_AES-KW-expected.txt (207808 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_failures_AES-KW-expected.txt        2016-10-25 05:26:35 UTC (rev 207808)
+++ trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_failures_AES-KW-expected.txt        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -1,3 +1,484 @@
</span><del>-CONSOLE MESSAGE: line 25: ReferenceError: Can't find variable: CryptoKey
-FAIL: Timed out waiting for notifyDone to be called
</del><ins>+generateKey Tests for Bad Parameters
</ins><span class="cx"> 
</span><ins>+
+PASS Bad algorithm: generateKey(AES, false, [decrypt]) 
+PASS Bad algorithm: generateKey(AES, true, [decrypt]) 
+PASS Bad algorithm: generateKey(AES, RED, [decrypt]) 
+PASS Bad algorithm: generateKey(AES, 7, [decrypt]) 
+PASS Bad algorithm: generateKey(AES, false, [sign, decrypt]) 
+PASS Bad algorithm: generateKey(AES, true, [sign, decrypt]) 
+PASS Bad algorithm: generateKey(AES, RED, [sign, decrypt]) 
+PASS Bad algorithm: generateKey(AES, 7, [sign, decrypt]) 
+PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey(AES, false, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey(AES, true, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey(AES, RED, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey(AES, 7, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey(AES, false, [sign]) 
+PASS Bad algorithm: generateKey(AES, true, [sign]) 
+PASS Bad algorithm: generateKey(AES, RED, [sign]) 
+PASS Bad algorithm: generateKey(AES, 7, [sign]) 
+PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey(AES, false, [deriveBits]) 
+PASS Bad algorithm: generateKey(AES, true, [deriveBits]) 
+PASS Bad algorithm: generateKey(AES, RED, [deriveBits]) 
+PASS Bad algorithm: generateKey(AES, 7, [deriveBits]) 
+PASS Bad algorithm: generateKey(AES, false, []) 
+PASS Bad algorithm: generateKey(AES, true, []) 
+PASS Bad algorithm: generateKey(AES, RED, []) 
+PASS Bad algorithm: generateKey(AES, 7, []) 
+PASS Bad algorithm: generateKey(AES, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey(AES, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey(AES, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey(AES, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({name: AES}, false, [decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, true, [decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, false, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, true, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, RED, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, 7, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, false, [sign]) 
+PASS Bad algorithm: generateKey({name: AES}, true, [sign]) 
+PASS Bad algorithm: generateKey({name: AES}, RED, [sign]) 
+PASS Bad algorithm: generateKey({name: AES}, 7, [sign]) 
+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits]) 
+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits]) 
+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits]) 
+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits]) 
+PASS Bad algorithm: generateKey({name: AES}, false, []) 
+PASS Bad algorithm: generateKey({name: AES}, true, []) 
+PASS Bad algorithm: generateKey({name: AES}, RED, []) 
+PASS Bad algorithm: generateKey({name: AES}, 7, []) 
+PASS Bad algorithm: generateKey({name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, []) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, []) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, []) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, []) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, []) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, []) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, []) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, []) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [encrypt]) 
+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, encrypt]) 
+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, wrapKey, encrypt]) 
+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, encrypt]) 
+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, encrypt]) 
+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [decrypt]) 
+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, decrypt]) 
+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, wrapKey, decrypt]) 
+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, decrypt]) 
+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, decrypt]) 
+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [sign]) 
+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, sign]) 
+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, wrapKey, sign]) 
+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, sign]) 
+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, sign]) 
+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [verify]) 
+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, verify]) 
+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, wrapKey, verify]) 
+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, verify]) 
+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, verify]) 
+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [deriveKey]) 
+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, deriveKey]) 
+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, wrapKey, deriveKey]) 
+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, deriveKey]) 
+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, deriveKey]) 
+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [deriveBits]) 
+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, deriveBits]) 
+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, wrapKey, deriveBits]) 
+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, deriveBits]) 
+PASS Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, deriveBits]) 
+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [encrypt]) 
+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, encrypt]) 
+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, wrapKey, encrypt]) 
+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, encrypt]) 
+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, encrypt]) 
+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [decrypt]) 
+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, decrypt]) 
+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, wrapKey, decrypt]) 
+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, decrypt]) 
+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, decrypt]) 
+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [sign]) 
+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, sign]) 
+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, wrapKey, sign]) 
+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, sign]) 
+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, sign]) 
+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [verify]) 
+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, verify]) 
+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, wrapKey, verify]) 
+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, verify]) 
+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, verify]) 
+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [deriveKey]) 
+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, deriveKey]) 
+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, wrapKey, deriveKey]) 
+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, deriveKey]) 
+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, deriveKey]) 
+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [deriveBits]) 
+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, deriveBits]) 
+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, wrapKey, deriveBits]) 
+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, deriveBits]) 
+PASS Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, deriveBits]) 
+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [encrypt]) 
+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, encrypt]) 
+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, wrapKey, encrypt]) 
+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, encrypt]) 
+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, encrypt]) 
+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [decrypt]) 
+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, decrypt]) 
+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, wrapKey, decrypt]) 
+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, decrypt]) 
+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, decrypt]) 
+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [sign]) 
+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, sign]) 
+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, wrapKey, sign]) 
+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, sign]) 
+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, sign]) 
+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [verify]) 
+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, verify]) 
+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, wrapKey, verify]) 
+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, verify]) 
+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, verify]) 
+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [deriveKey]) 
+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, deriveKey]) 
+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, wrapKey, deriveKey]) 
+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, deriveKey]) 
+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, deriveKey]) 
+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [deriveBits]) 
+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, deriveBits]) 
+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, wrapKey, deriveBits]) 
+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, deriveBits]) 
+PASS Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, deriveBits]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-KW}, false, [wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-KW}, true, [wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-KW}, false, [unwrapKey, wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-KW}, true, [unwrapKey, wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-KW}, false, [unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-KW}, true, [unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-KW}, false, []) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-KW}, true, []) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-KW}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-KW}, false, [wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-KW}, true, [wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-KW}, false, [unwrapKey, wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-KW}, true, [unwrapKey, wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-KW}, false, [unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-KW}, true, [unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-KW}, false, []) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-KW}, true, []) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-KW}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-KW}, false, [wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-KW}, true, [wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-KW}, false, [unwrapKey, wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-KW}, true, [unwrapKey, wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-KW}, false, [unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-KW}, true, [unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-KW}, false, []) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-KW}, true, []) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-KW}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-KW}, false, [wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-KW}, true, [wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-KW}, false, [unwrapKey, wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-KW}, true, [unwrapKey, wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-KW}, false, [unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-KW}, true, [unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-KW}, false, []) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-KW}, true, []) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-KW}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-KW}, false, [wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-KW}, true, [wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-KW}, false, [unwrapKey, wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-KW}, true, [unwrapKey, wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-KW}, false, [unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-KW}, true, [unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-KW}, false, []) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-KW}, true, []) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-KW}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-KW}, false, [wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-KW}, true, [wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-KW}, false, [unwrapKey, wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-KW}, true, [unwrapKey, wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-KW}, false, [unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-KW}, true, [unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-KW}, false, []) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-KW}, true, []) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-KW}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) 
+PASS Empty usages: generateKey({length: 128, name: AES-KW}, false, []) 
+PASS Empty usages: generateKey({length: 128, name: AES-KW}, true, []) 
+PASS Empty usages: generateKey({length: 192, name: AES-KW}, false, []) 
+PASS Empty usages: generateKey({length: 192, name: AES-KW}, true, []) 
+PASS Empty usages: generateKey({length: 256, name: AES-KW}, false, []) 
+PASS Empty usages: generateKey({length: 256, name: AES-KW}, true, []) 
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cWebCryptoAPIgenerateKeytest_failures_AESKWhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_failures_AES-KW.html (207808 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_failures_AES-KW.html        2016-10-25 05:26:35 UTC (rev 207808)
+++ trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_failures_AES-KW.html        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -7,7 +7,7 @@
</span><span class="cx"> &lt;script src=&quot;../../../../resources/testharness.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> 
</span><del>-&lt;script src=&quot;/WebCryptoAPI/util/helpers.js&quot;&gt;&lt;/script&gt;
</del><ins>+&lt;script src=&quot;../util/helpers.js&quot;&gt;&lt;/script&gt;
</ins><span class="cx"> &lt;script src=&quot;failures.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> 
</span><span class="cx"> &lt;h1&gt;generateKey Tests for Bad Parameters&lt;/h1&gt;
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cWebCryptoAPIgenerateKeytest_failures_ECDHexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_failures_ECDH-expected.txt (207808 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_failures_ECDH-expected.txt        2016-10-25 05:26:35 UTC (rev 207808)
+++ trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_failures_ECDH-expected.txt        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -1,3 +1,444 @@
</span><del>-CONSOLE MESSAGE: line 25: ReferenceError: Can't find variable: CryptoKey
-FAIL: Timed out waiting for notifyDone to be called
</del><ins>+generateKey Tests for Bad Parameters
</ins><span class="cx"> 
</span><ins>+
+PASS Bad algorithm: generateKey(AES, false, [decrypt]) 
+PASS Bad algorithm: generateKey(AES, true, [decrypt]) 
+PASS Bad algorithm: generateKey(AES, RED, [decrypt]) 
+PASS Bad algorithm: generateKey(AES, 7, [decrypt]) 
+PASS Bad algorithm: generateKey(AES, false, [sign, decrypt]) 
+PASS Bad algorithm: generateKey(AES, true, [sign, decrypt]) 
+PASS Bad algorithm: generateKey(AES, RED, [sign, decrypt]) 
+PASS Bad algorithm: generateKey(AES, 7, [sign, decrypt]) 
+PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey(AES, false, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey(AES, true, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey(AES, RED, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey(AES, 7, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey(AES, false, [sign]) 
+PASS Bad algorithm: generateKey(AES, true, [sign]) 
+PASS Bad algorithm: generateKey(AES, RED, [sign]) 
+PASS Bad algorithm: generateKey(AES, 7, [sign]) 
+PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey(AES, false, [deriveBits]) 
+PASS Bad algorithm: generateKey(AES, true, [deriveBits]) 
+PASS Bad algorithm: generateKey(AES, RED, [deriveBits]) 
+PASS Bad algorithm: generateKey(AES, 7, [deriveBits]) 
+PASS Bad algorithm: generateKey(AES, false, []) 
+PASS Bad algorithm: generateKey(AES, true, []) 
+PASS Bad algorithm: generateKey(AES, RED, []) 
+PASS Bad algorithm: generateKey(AES, 7, []) 
+PASS Bad algorithm: generateKey(AES, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey(AES, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey(AES, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey(AES, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({name: AES}, false, [decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, true, [decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, false, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, true, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, RED, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, 7, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, false, [sign]) 
+PASS Bad algorithm: generateKey({name: AES}, true, [sign]) 
+PASS Bad algorithm: generateKey({name: AES}, RED, [sign]) 
+PASS Bad algorithm: generateKey({name: AES}, 7, [sign]) 
+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits]) 
+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits]) 
+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits]) 
+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits]) 
+PASS Bad algorithm: generateKey({name: AES}, false, []) 
+PASS Bad algorithm: generateKey({name: AES}, true, []) 
+PASS Bad algorithm: generateKey({name: AES}, RED, []) 
+PASS Bad algorithm: generateKey({name: AES}, 7, []) 
+PASS Bad algorithm: generateKey({name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, []) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, []) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, []) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, []) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, []) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, []) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, []) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, []) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [encrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, encrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, deriveKey, encrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, encrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, encrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [decrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, decrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, deriveKey, decrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, decrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, decrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, deriveKey, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, deriveKey, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [wrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, wrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, deriveKey, wrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, wrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, wrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [unwrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, unwrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, deriveKey, unwrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, unwrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, unwrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [encrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, encrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, deriveKey, encrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, encrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, encrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [decrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, decrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, deriveKey, decrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, decrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, decrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, deriveKey, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, deriveKey, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [wrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, wrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, deriveKey, wrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, wrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, wrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [unwrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, unwrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, deriveKey, unwrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, unwrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, unwrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [encrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, encrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, deriveKey, encrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, encrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, encrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [decrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, decrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, deriveKey, decrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, decrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, decrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, deriveKey, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, sign]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, deriveKey, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, verify]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [wrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, wrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, deriveKey, wrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, wrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, wrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [unwrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, unwrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, deriveKey, unwrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, unwrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, unwrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: P-512}, false, [deriveKey]) 
+PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: P-512}, true, [deriveKey]) 
+PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: P-512}, false, [deriveBits, deriveKey]) 
+PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: P-512}, true, [deriveBits, deriveKey]) 
+PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: P-512}, false, [deriveBits]) 
+PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: P-512}, true, [deriveBits]) 
+PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: P-512}, false, []) 
+PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: P-512}, true, []) 
+PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: P-512}, false, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) 
+PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: P-512}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) 
+PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: Curve25519}, false, [deriveKey]) 
+PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: Curve25519}, true, [deriveKey]) 
+PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: Curve25519}, false, [deriveBits, deriveKey]) 
+PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: Curve25519}, true, [deriveBits, deriveKey]) 
+PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: Curve25519}, false, [deriveBits]) 
+PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: Curve25519}, true, [deriveBits]) 
+PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: Curve25519}, false, []) 
+PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: Curve25519}, true, []) 
+PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: Curve25519}, false, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) 
+PASS Bad algorithm property: generateKey({name: ECDH, namedCurve: Curve25519}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) 
+FAIL Empty usages: generateKey({name: ECDH, namedCurve: P-256}, false, []) assert_equals: Empty usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Empty usages: generateKey({name: ECDH, namedCurve: P-256}, true, []) assert_equals: Empty usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Empty usages: generateKey({name: ECDH, namedCurve: P-384}, false, []) assert_equals: Empty usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Empty usages: generateKey({name: ECDH, namedCurve: P-384}, true, []) assert_equals: Empty usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Empty usages: generateKey({name: ECDH, namedCurve: P-521}, false, []) assert_equals: Empty usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Empty usages: generateKey({name: ECDH, namedCurve: P-521}, true, []) assert_equals: Empty usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cWebCryptoAPIgenerateKeytest_failures_ECDHhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_failures_ECDH.html (207808 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_failures_ECDH.html        2016-10-25 05:26:35 UTC (rev 207808)
+++ trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_failures_ECDH.html        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -7,7 +7,7 @@
</span><span class="cx"> &lt;script src=&quot;../../../../resources/testharness.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> 
</span><del>-&lt;script src=&quot;/WebCryptoAPI/util/helpers.js&quot;&gt;&lt;/script&gt;
</del><ins>+&lt;script src=&quot;../util/helpers.js&quot;&gt;&lt;/script&gt;
</ins><span class="cx"> &lt;script src=&quot;failures.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> 
</span><span class="cx"> &lt;h1&gt;generateKey Tests for Bad Parameters&lt;/h1&gt;
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cWebCryptoAPIgenerateKeytest_failures_ECDSAexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_failures_ECDSA-expected.txt (207808 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_failures_ECDSA-expected.txt        2016-10-25 05:26:35 UTC (rev 207808)
+++ trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_failures_ECDSA-expected.txt        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -1,3 +1,422 @@
</span><del>-CONSOLE MESSAGE: line 25: ReferenceError: Can't find variable: CryptoKey
-FAIL: Timed out waiting for notifyDone to be called
</del><ins>+generateKey Tests for Bad Parameters
</ins><span class="cx"> 
</span><ins>+
+PASS Bad algorithm: generateKey(AES, false, [decrypt]) 
+PASS Bad algorithm: generateKey(AES, true, [decrypt]) 
+PASS Bad algorithm: generateKey(AES, RED, [decrypt]) 
+PASS Bad algorithm: generateKey(AES, 7, [decrypt]) 
+PASS Bad algorithm: generateKey(AES, false, [sign, decrypt]) 
+PASS Bad algorithm: generateKey(AES, true, [sign, decrypt]) 
+PASS Bad algorithm: generateKey(AES, RED, [sign, decrypt]) 
+PASS Bad algorithm: generateKey(AES, 7, [sign, decrypt]) 
+PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey(AES, false, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey(AES, true, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey(AES, RED, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey(AES, 7, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey(AES, false, [sign]) 
+PASS Bad algorithm: generateKey(AES, true, [sign]) 
+PASS Bad algorithm: generateKey(AES, RED, [sign]) 
+PASS Bad algorithm: generateKey(AES, 7, [sign]) 
+PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey(AES, false, [deriveBits]) 
+PASS Bad algorithm: generateKey(AES, true, [deriveBits]) 
+PASS Bad algorithm: generateKey(AES, RED, [deriveBits]) 
+PASS Bad algorithm: generateKey(AES, 7, [deriveBits]) 
+PASS Bad algorithm: generateKey(AES, false, []) 
+PASS Bad algorithm: generateKey(AES, true, []) 
+PASS Bad algorithm: generateKey(AES, RED, []) 
+PASS Bad algorithm: generateKey(AES, 7, []) 
+PASS Bad algorithm: generateKey(AES, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey(AES, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey(AES, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey(AES, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({name: AES}, false, [decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, true, [decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, false, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, true, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, RED, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, 7, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, false, [sign]) 
+PASS Bad algorithm: generateKey({name: AES}, true, [sign]) 
+PASS Bad algorithm: generateKey({name: AES}, RED, [sign]) 
+PASS Bad algorithm: generateKey({name: AES}, 7, [sign]) 
+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits]) 
+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits]) 
+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits]) 
+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits]) 
+PASS Bad algorithm: generateKey({name: AES}, false, []) 
+PASS Bad algorithm: generateKey({name: AES}, true, []) 
+PASS Bad algorithm: generateKey({name: AES}, RED, []) 
+PASS Bad algorithm: generateKey({name: AES}, 7, []) 
+PASS Bad algorithm: generateKey({name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, []) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, []) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, []) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, []) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, []) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, []) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, []) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, []) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [encrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, encrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [verify, sign, encrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, verify, sign, sign, verify, encrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [decrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, decrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [verify, sign, decrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, verify, sign, sign, verify, decrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [wrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, wrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [verify, sign, wrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, verify, sign, sign, verify, wrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [unwrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, unwrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [verify, sign, unwrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, verify, sign, sign, verify, unwrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [verify, sign, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, verify, sign, sign, verify, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [verify, sign, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, verify, sign, sign, verify, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [encrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, encrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [verify, sign, encrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, verify, sign, sign, verify, encrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [decrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, decrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [verify, sign, decrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, verify, sign, sign, verify, decrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [wrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, wrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [verify, sign, wrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, verify, sign, sign, verify, wrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [unwrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, unwrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [verify, sign, unwrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, verify, sign, sign, verify, unwrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [verify, sign, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, verify, sign, sign, verify, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [verify, sign, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, verify, sign, sign, verify, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [encrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, encrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [verify, sign, encrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, verify, sign, sign, verify, encrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [decrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, decrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [verify, sign, decrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, verify, sign, sign, verify, decrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [wrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, wrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [verify, sign, wrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, verify, sign, sign, verify, wrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [unwrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, unwrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [verify, sign, unwrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, verify, sign, sign, verify, unwrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [verify, sign, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, verify, sign, sign, verify, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [verify, sign, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, verify, sign, sign, verify, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: P-512}, false, [sign]) 
+PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: P-512}, true, [sign]) 
+PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: P-512}, false, [verify, sign]) 
+PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: P-512}, true, [verify, sign]) 
+PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: P-512}, false, []) 
+PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: P-512}, true, []) 
+PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: P-512}, false, [sign, verify, sign, sign, verify]) 
+PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: P-512}, true, [sign, verify, sign, sign, verify]) 
+PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: Curve25519}, false, [sign]) 
+PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: Curve25519}, true, [sign]) 
+PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: Curve25519}, false, [verify, sign]) 
+PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: Curve25519}, true, [verify, sign]) 
+PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: Curve25519}, false, []) 
+PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: Curve25519}, true, []) 
+PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: Curve25519}, false, [sign, verify, sign, sign, verify]) 
+PASS Bad algorithm property: generateKey({name: ECDSA, namedCurve: Curve25519}, true, [sign, verify, sign, sign, verify]) 
+FAIL Empty usages: generateKey({name: ECDSA, namedCurve: P-256}, false, []) assert_equals: Empty usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Empty usages: generateKey({name: ECDSA, namedCurve: P-256}, true, []) assert_equals: Empty usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Empty usages: generateKey({name: ECDSA, namedCurve: P-384}, false, []) assert_equals: Empty usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Empty usages: generateKey({name: ECDSA, namedCurve: P-384}, true, []) assert_equals: Empty usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Empty usages: generateKey({name: ECDSA, namedCurve: P-521}, false, []) assert_equals: Empty usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Empty usages: generateKey({name: ECDSA, namedCurve: P-521}, true, []) assert_equals: Empty usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cWebCryptoAPIgenerateKeytest_failures_ECDSAhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_failures_ECDSA.html (207808 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_failures_ECDSA.html        2016-10-25 05:26:35 UTC (rev 207808)
+++ trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_failures_ECDSA.html        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -7,7 +7,7 @@
</span><span class="cx"> &lt;script src=&quot;../../../../resources/testharness.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> 
</span><del>-&lt;script src=&quot;/WebCryptoAPI/util/helpers.js&quot;&gt;&lt;/script&gt;
</del><ins>+&lt;script src=&quot;../util/helpers.js&quot;&gt;&lt;/script&gt;
</ins><span class="cx"> &lt;script src=&quot;failures.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> 
</span><span class="cx"> &lt;h1&gt;generateKey Tests for Bad Parameters&lt;/h1&gt;
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cWebCryptoAPIgenerateKeytest_failures_HMACexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_failures_HMAC-expected.txt (207808 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_failures_HMAC-expected.txt        2016-10-25 05:26:35 UTC (rev 207808)
+++ trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_failures_HMAC-expected.txt        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -1,3 +1,456 @@
</span><del>-CONSOLE MESSAGE: line 25: ReferenceError: Can't find variable: CryptoKey
-FAIL: Timed out waiting for notifyDone to be called
</del><ins>+generateKey Tests for Bad Parameters
</ins><span class="cx"> 
</span><ins>+
+PASS Bad algorithm: generateKey(AES, false, [decrypt]) 
+PASS Bad algorithm: generateKey(AES, true, [decrypt]) 
+PASS Bad algorithm: generateKey(AES, RED, [decrypt]) 
+PASS Bad algorithm: generateKey(AES, 7, [decrypt]) 
+PASS Bad algorithm: generateKey(AES, false, [sign, decrypt]) 
+PASS Bad algorithm: generateKey(AES, true, [sign, decrypt]) 
+PASS Bad algorithm: generateKey(AES, RED, [sign, decrypt]) 
+PASS Bad algorithm: generateKey(AES, 7, [sign, decrypt]) 
+PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey(AES, false, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey(AES, true, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey(AES, RED, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey(AES, 7, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey(AES, false, [sign]) 
+PASS Bad algorithm: generateKey(AES, true, [sign]) 
+PASS Bad algorithm: generateKey(AES, RED, [sign]) 
+PASS Bad algorithm: generateKey(AES, 7, [sign]) 
+PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey(AES, false, [deriveBits]) 
+PASS Bad algorithm: generateKey(AES, true, [deriveBits]) 
+PASS Bad algorithm: generateKey(AES, RED, [deriveBits]) 
+PASS Bad algorithm: generateKey(AES, 7, [deriveBits]) 
+PASS Bad algorithm: generateKey(AES, false, []) 
+PASS Bad algorithm: generateKey(AES, true, []) 
+PASS Bad algorithm: generateKey(AES, RED, []) 
+PASS Bad algorithm: generateKey(AES, 7, []) 
+PASS Bad algorithm: generateKey(AES, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey(AES, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey(AES, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey(AES, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({name: AES}, false, [decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, true, [decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, false, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, true, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, RED, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, 7, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, false, [sign]) 
+PASS Bad algorithm: generateKey({name: AES}, true, [sign]) 
+PASS Bad algorithm: generateKey({name: AES}, RED, [sign]) 
+PASS Bad algorithm: generateKey({name: AES}, 7, [sign]) 
+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits]) 
+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits]) 
+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits]) 
+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits]) 
+PASS Bad algorithm: generateKey({name: AES}, false, []) 
+PASS Bad algorithm: generateKey({name: AES}, true, []) 
+PASS Bad algorithm: generateKey({name: AES}, RED, []) 
+PASS Bad algorithm: generateKey({name: AES}, 7, []) 
+PASS Bad algorithm: generateKey({name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, []) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, []) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, []) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, []) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, []) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, []) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, []) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, []) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [encrypt]) 
+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, encrypt]) 
+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, sign, encrypt]) 
+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, encrypt]) 
+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, verify, sign, verify, encrypt]) 
+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [decrypt]) 
+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, decrypt]) 
+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, sign, decrypt]) 
+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, decrypt]) 
+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, verify, sign, verify, decrypt]) 
+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [wrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, wrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, sign, wrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, wrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, verify, sign, verify, wrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [unwrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, unwrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, sign, unwrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, unwrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, verify, sign, verify, unwrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, sign, deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, verify, sign, verify, deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, sign, deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, verify, sign, verify, deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [encrypt]) 
+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, encrypt]) 
+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, sign, encrypt]) 
+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, encrypt]) 
+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, verify, sign, verify, encrypt]) 
+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [decrypt]) 
+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, decrypt]) 
+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, sign, decrypt]) 
+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, decrypt]) 
+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, verify, sign, verify, decrypt]) 
+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [wrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, wrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, sign, wrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, wrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, verify, sign, verify, wrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [unwrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, unwrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, sign, unwrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, unwrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, verify, sign, verify, unwrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, sign, deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, verify, sign, verify, deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, sign, deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, verify, sign, verify, deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [encrypt]) 
+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, encrypt]) 
+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, sign, encrypt]) 
+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, encrypt]) 
+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, verify, sign, verify, encrypt]) 
+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [decrypt]) 
+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, decrypt]) 
+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, sign, decrypt]) 
+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, decrypt]) 
+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, verify, sign, verify, decrypt]) 
+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [wrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, wrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, sign, wrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, wrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, verify, sign, verify, wrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [unwrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, unwrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, sign, unwrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, unwrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, verify, sign, verify, unwrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, sign, deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, verify, sign, verify, deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, sign, deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, verify, sign, verify, deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [encrypt]) 
+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, encrypt]) 
+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, sign, encrypt]) 
+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, encrypt]) 
+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, verify, sign, verify, encrypt]) 
+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [decrypt]) 
+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, decrypt]) 
+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, sign, decrypt]) 
+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, decrypt]) 
+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, verify, sign, verify, decrypt]) 
+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [wrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, wrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, sign, wrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, wrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, verify, sign, verify, wrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [unwrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, unwrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, sign, unwrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, unwrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, verify, sign, verify, unwrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, sign, deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, verify, sign, verify, deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, sign, deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, verify, sign, verify, deriveBits]) 
+PASS Empty usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, false, []) 
+PASS Empty usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, []) 
+PASS Empty usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, false, []) 
+PASS Empty usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, []) 
+PASS Empty usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, false, []) 
+PASS Empty usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, []) 
+PASS Empty usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, false, []) 
+PASS Empty usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, []) 
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cWebCryptoAPIgenerateKeytest_failures_HMAChtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_failures_HMAC.html (207808 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_failures_HMAC.html        2016-10-25 05:26:35 UTC (rev 207808)
+++ trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_failures_HMAC.html        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -7,7 +7,7 @@
</span><span class="cx"> &lt;script src=&quot;../../../../resources/testharness.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> 
</span><del>-&lt;script src=&quot;/WebCryptoAPI/util/helpers.js&quot;&gt;&lt;/script&gt;
</del><ins>+&lt;script src=&quot;../util/helpers.js&quot;&gt;&lt;/script&gt;
</ins><span class="cx"> &lt;script src=&quot;failures.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> 
</span><span class="cx"> &lt;h1&gt;generateKey Tests for Bad Parameters&lt;/h1&gt;
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cWebCryptoAPIgenerateKeytest_failures_RSAOAEPexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_failures_RSA-OAEP-expected.txt (207808 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_failures_RSA-OAEP-expected.txt        2016-10-25 05:26:35 UTC (rev 207808)
+++ trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_failures_RSA-OAEP-expected.txt        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -1,3 +1,500 @@
</span><del>-CONSOLE MESSAGE: line 25: ReferenceError: Can't find variable: CryptoKey
-FAIL: Timed out waiting for notifyDone to be called
</del><ins>+generateKey Tests for Bad Parameters
</ins><span class="cx"> 
</span><ins>+
+PASS Bad algorithm: generateKey(AES, false, [decrypt]) 
+PASS Bad algorithm: generateKey(AES, true, [decrypt]) 
+PASS Bad algorithm: generateKey(AES, RED, [decrypt]) 
+PASS Bad algorithm: generateKey(AES, 7, [decrypt]) 
+PASS Bad algorithm: generateKey(AES, false, [sign, decrypt]) 
+PASS Bad algorithm: generateKey(AES, true, [sign, decrypt]) 
+PASS Bad algorithm: generateKey(AES, RED, [sign, decrypt]) 
+PASS Bad algorithm: generateKey(AES, 7, [sign, decrypt]) 
+PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey(AES, false, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey(AES, true, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey(AES, RED, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey(AES, 7, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey(AES, false, [sign]) 
+PASS Bad algorithm: generateKey(AES, true, [sign]) 
+PASS Bad algorithm: generateKey(AES, RED, [sign]) 
+PASS Bad algorithm: generateKey(AES, 7, [sign]) 
+PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey(AES, false, [deriveBits]) 
+PASS Bad algorithm: generateKey(AES, true, [deriveBits]) 
+PASS Bad algorithm: generateKey(AES, RED, [deriveBits]) 
+PASS Bad algorithm: generateKey(AES, 7, [deriveBits]) 
+PASS Bad algorithm: generateKey(AES, false, []) 
+PASS Bad algorithm: generateKey(AES, true, []) 
+PASS Bad algorithm: generateKey(AES, RED, []) 
+PASS Bad algorithm: generateKey(AES, 7, []) 
+PASS Bad algorithm: generateKey(AES, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey(AES, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey(AES, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey(AES, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({name: AES}, false, [decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, true, [decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, false, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, true, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, RED, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, 7, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, false, [sign]) 
+PASS Bad algorithm: generateKey({name: AES}, true, [sign]) 
+PASS Bad algorithm: generateKey({name: AES}, RED, [sign]) 
+PASS Bad algorithm: generateKey({name: AES}, 7, [sign]) 
+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits]) 
+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits]) 
+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits]) 
+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits]) 
+PASS Bad algorithm: generateKey({name: AES}, false, []) 
+PASS Bad algorithm: generateKey({name: AES}, true, []) 
+PASS Bad algorithm: generateKey({name: AES}, RED, []) 
+PASS Bad algorithm: generateKey({name: AES}, 7, []) 
+PASS Bad algorithm: generateKey({name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, []) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, []) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, []) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, []) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, []) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, []) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, []) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, []) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, encrypt, sign]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, encrypt, sign]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, encrypt, sign]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, encrypt, sign]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, encrypt, sign]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, sign]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, sign]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, sign]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, sign]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, sign]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, encrypt, verify]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, encrypt, verify]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, encrypt, verify]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, encrypt, verify]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, encrypt, verify]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, verify]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, verify]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, verify]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, verify]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, verify]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, verify]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, encrypt, deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, encrypt, deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, encrypt, deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, encrypt, deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, encrypt, deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, encrypt, deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, encrypt, deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, encrypt, deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, encrypt, deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, encrypt, deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, encrypt, sign]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, encrypt, sign]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, encrypt, sign]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, encrypt, sign]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, encrypt, sign]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, sign]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, sign]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, sign]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, sign]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, sign]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, encrypt, verify]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, encrypt, verify]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, encrypt, verify]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, encrypt, verify]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, encrypt, verify]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, verify]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, verify]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, verify]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, verify]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, verify]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, verify]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, encrypt, deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, encrypt, deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, encrypt, deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, encrypt, deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, encrypt, deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, encrypt, deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, encrypt, deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, encrypt, deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, encrypt, deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, encrypt, deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, [decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, [decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, [wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, [wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, [unwrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, [unwrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, [unwrapKey, wrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, [unwrapKey, wrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, [unwrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, [unwrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, [decrypt]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, [decrypt]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, [wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, [wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, [unwrapKey, wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, [unwrapKey, wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, [unwrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, [unwrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, [unwrapKey, wrapKey]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, [unwrapKey, wrapKey]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, [unwrapKey]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, [unwrapKey]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, []) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, []) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, false, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [unwrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [unwrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [unwrapKey, wrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [unwrapKey, wrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [unwrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [unwrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [decrypt]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [decrypt]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [unwrapKey, wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [unwrapKey, wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [unwrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [unwrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [unwrapKey, wrapKey]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [unwrapKey, wrapKey]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [unwrapKey]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [unwrapKey]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, []) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, []) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Empty usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) 
+PASS Empty usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) 
+PASS Empty usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) 
+PASS Empty usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) 
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cWebCryptoAPIgenerateKeytest_failures_RSAOAEPhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_failures_RSA-OAEP.html (207808 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_failures_RSA-OAEP.html        2016-10-25 05:26:35 UTC (rev 207808)
+++ trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_failures_RSA-OAEP.html        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -7,7 +7,7 @@
</span><span class="cx"> &lt;script src=&quot;../../../../resources/testharness.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> 
</span><del>-&lt;script src=&quot;/WebCryptoAPI/util/helpers.js&quot;&gt;&lt;/script&gt;
</del><ins>+&lt;script src=&quot;../util/helpers.js&quot;&gt;&lt;/script&gt;
</ins><span class="cx"> &lt;script src=&quot;failures.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> 
</span><span class="cx"> &lt;h1&gt;generateKey Tests for Bad Parameters&lt;/h1&gt;
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cWebCryptoAPIgenerateKeytest_failures_RSAPSSexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_failures_RSA-PSS-expected.txt (207808 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_failures_RSA-PSS-expected.txt        2016-10-25 05:26:35 UTC (rev 207808)
+++ trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_failures_RSA-PSS-expected.txt        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -1,3 +1,396 @@
</span><del>-CONSOLE MESSAGE: line 25: ReferenceError: Can't find variable: CryptoKey
-FAIL: Timed out waiting for notifyDone to be called
</del><ins>+generateKey Tests for Bad Parameters
</ins><span class="cx"> 
</span><ins>+
+PASS Bad algorithm: generateKey(AES, false, [decrypt]) 
+PASS Bad algorithm: generateKey(AES, true, [decrypt]) 
+PASS Bad algorithm: generateKey(AES, RED, [decrypt]) 
+PASS Bad algorithm: generateKey(AES, 7, [decrypt]) 
+PASS Bad algorithm: generateKey(AES, false, [sign, decrypt]) 
+PASS Bad algorithm: generateKey(AES, true, [sign, decrypt]) 
+PASS Bad algorithm: generateKey(AES, RED, [sign, decrypt]) 
+PASS Bad algorithm: generateKey(AES, 7, [sign, decrypt]) 
+PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey(AES, false, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey(AES, true, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey(AES, RED, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey(AES, 7, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey(AES, false, [sign]) 
+PASS Bad algorithm: generateKey(AES, true, [sign]) 
+PASS Bad algorithm: generateKey(AES, RED, [sign]) 
+PASS Bad algorithm: generateKey(AES, 7, [sign]) 
+PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey(AES, false, [deriveBits]) 
+PASS Bad algorithm: generateKey(AES, true, [deriveBits]) 
+PASS Bad algorithm: generateKey(AES, RED, [deriveBits]) 
+PASS Bad algorithm: generateKey(AES, 7, [deriveBits]) 
+PASS Bad algorithm: generateKey(AES, false, []) 
+PASS Bad algorithm: generateKey(AES, true, []) 
+PASS Bad algorithm: generateKey(AES, RED, []) 
+PASS Bad algorithm: generateKey(AES, 7, []) 
+PASS Bad algorithm: generateKey(AES, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey(AES, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey(AES, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey(AES, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({name: AES}, false, [decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, true, [decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, false, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, true, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, RED, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, 7, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, false, [sign]) 
+PASS Bad algorithm: generateKey({name: AES}, true, [sign]) 
+PASS Bad algorithm: generateKey({name: AES}, RED, [sign]) 
+PASS Bad algorithm: generateKey({name: AES}, 7, [sign]) 
+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits]) 
+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits]) 
+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits]) 
+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits]) 
+PASS Bad algorithm: generateKey({name: AES}, false, []) 
+PASS Bad algorithm: generateKey({name: AES}, true, []) 
+PASS Bad algorithm: generateKey({name: AES}, RED, []) 
+PASS Bad algorithm: generateKey({name: AES}, 7, []) 
+PASS Bad algorithm: generateKey({name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, []) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, []) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, []) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, []) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, []) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, []) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, []) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, []) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, encrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, encrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, encrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, decrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, decrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, wrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, wrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, wrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, unwrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, unwrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, unwrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, encrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, encrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, encrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, decrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, decrypt]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, wrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, wrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, wrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, unwrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, unwrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, unwrapKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, deriveKey]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, deriveBits]) assert_equals: Bad usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1}}, false, [sign]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1}}, true, [sign]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1}}, false, [verify, sign]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1}}, true, [verify, sign]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1}}, false, []) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1}}, true, []) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1}}, false, [sign, verify, sign, sign, verify]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1}}, true, [sign, verify, sign, sign, verify]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [sign]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [sign]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [verify, sign]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [verify, sign]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 0}}, false, []) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 0}}, true, []) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [sign, verify, sign, sign, verify]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [sign, verify, sign, sign, verify]) assert_equals: Bad algorithm property not supported expected &quot;OperationError&quot; but got &quot;NotSupportedError&quot;
+FAIL Empty usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) assert_equals: Empty usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Empty usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) assert_equals: Empty usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Empty usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) assert_equals: Empty usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+FAIL Empty usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) assert_equals: Empty usages not supported expected &quot;SyntaxError&quot; but got &quot;NotSupportedError&quot;
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cWebCryptoAPIgenerateKeytest_failures_RSAPSShtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_failures_RSA-PSS.html (207808 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_failures_RSA-PSS.html        2016-10-25 05:26:35 UTC (rev 207808)
+++ trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_failures_RSA-PSS.html        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -7,7 +7,7 @@
</span><span class="cx"> &lt;script src=&quot;../../../../resources/testharness.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> 
</span><del>-&lt;script src=&quot;/WebCryptoAPI/util/helpers.js&quot;&gt;&lt;/script&gt;
</del><ins>+&lt;script src=&quot;../util/helpers.js&quot;&gt;&lt;/script&gt;
</ins><span class="cx"> &lt;script src=&quot;failures.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> 
</span><span class="cx"> &lt;h1&gt;generateKey Tests for Bad Parameters&lt;/h1&gt;
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cWebCryptoAPIgenerateKeytest_failures_RSASSAPKCS1v1_5expectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_failures_RSASSA-PKCS1-v1_5-expected.txt (207808 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_failures_RSASSA-PKCS1-v1_5-expected.txt        2016-10-25 05:26:35 UTC (rev 207808)
+++ trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_failures_RSASSA-PKCS1-v1_5-expected.txt        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -1,3 +1,396 @@
</span><del>-CONSOLE MESSAGE: line 25: ReferenceError: Can't find variable: CryptoKey
-FAIL: Timed out waiting for notifyDone to be called
</del><ins>+generateKey Tests for Bad Parameters
</ins><span class="cx"> 
</span><ins>+
+PASS Bad algorithm: generateKey(AES, false, [decrypt]) 
+PASS Bad algorithm: generateKey(AES, true, [decrypt]) 
+PASS Bad algorithm: generateKey(AES, RED, [decrypt]) 
+PASS Bad algorithm: generateKey(AES, 7, [decrypt]) 
+PASS Bad algorithm: generateKey(AES, false, [sign, decrypt]) 
+PASS Bad algorithm: generateKey(AES, true, [sign, decrypt]) 
+PASS Bad algorithm: generateKey(AES, RED, [sign, decrypt]) 
+PASS Bad algorithm: generateKey(AES, 7, [sign, decrypt]) 
+PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey(AES, false, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey(AES, true, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey(AES, RED, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey(AES, 7, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey(AES, false, [sign]) 
+PASS Bad algorithm: generateKey(AES, true, [sign]) 
+PASS Bad algorithm: generateKey(AES, RED, [sign]) 
+PASS Bad algorithm: generateKey(AES, 7, [sign]) 
+PASS Bad algorithm: generateKey(AES, false, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey(AES, true, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey(AES, RED, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey(AES, 7, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey(AES, false, [deriveBits]) 
+PASS Bad algorithm: generateKey(AES, true, [deriveBits]) 
+PASS Bad algorithm: generateKey(AES, RED, [deriveBits]) 
+PASS Bad algorithm: generateKey(AES, 7, [deriveBits]) 
+PASS Bad algorithm: generateKey(AES, false, []) 
+PASS Bad algorithm: generateKey(AES, true, []) 
+PASS Bad algorithm: generateKey(AES, RED, []) 
+PASS Bad algorithm: generateKey(AES, 7, []) 
+PASS Bad algorithm: generateKey(AES, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey(AES, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey(AES, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey(AES, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({name: AES}, false, [decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, true, [decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, false, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, true, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, RED, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, 7, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({name: AES}, false, [sign]) 
+PASS Bad algorithm: generateKey({name: AES}, true, [sign]) 
+PASS Bad algorithm: generateKey({name: AES}, RED, [sign]) 
+PASS Bad algorithm: generateKey({name: AES}, 7, [sign]) 
+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({name: AES}, false, [deriveBits]) 
+PASS Bad algorithm: generateKey({name: AES}, true, [deriveBits]) 
+PASS Bad algorithm: generateKey({name: AES}, RED, [deriveBits]) 
+PASS Bad algorithm: generateKey({name: AES}, 7, [deriveBits]) 
+PASS Bad algorithm: generateKey({name: AES}, false, []) 
+PASS Bad algorithm: generateKey({name: AES}, true, []) 
+PASS Bad algorithm: generateKey({name: AES}, RED, []) 
+PASS Bad algorithm: generateKey({name: AES}, 7, []) 
+PASS Bad algorithm: generateKey({name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, []) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, []) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, []) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, []) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, []) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, decrypt]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, []) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, []) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, []) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, []) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, encrypt]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, encrypt]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, encrypt]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, decrypt]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, decrypt]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, wrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, wrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, wrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, unwrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, unwrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, unwrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, encrypt]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, encrypt]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, encrypt]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, decrypt]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, decrypt]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, wrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, wrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, wrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, unwrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, unwrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, unwrapKey]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, deriveKey]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign, deriveBits]) 
+PASS Bad usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify, deriveBits]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1}}, false, [sign]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1}}, true, [sign]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1}}, false, [verify, sign]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1}}, true, [verify, sign]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1}}, false, []) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1}}, true, []) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1}}, false, [sign, verify, sign, sign, verify]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1}}, true, [sign, verify, sign, sign, verify]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [sign]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [sign]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [verify, sign]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [verify, sign]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 0}}, false, []) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 0}}, true, []) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 0}}, false, [sign, verify, sign, sign, verify]) 
+PASS Bad algorithm property: generateKey({hash: SHA-256, modulusLength: 1024, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 0}}, true, [sign, verify, sign, sign, verify]) 
+PASS Empty usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) 
+PASS Empty usages: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) 
+PASS Empty usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) 
+PASS Empty usages: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) 
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cWebCryptoAPIgenerateKeytest_failures_RSASSAPKCS1v1_5html"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_failures_RSASSA-PKCS1-v1_5.html (207808 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_failures_RSASSA-PKCS1-v1_5.html        2016-10-25 05:26:35 UTC (rev 207808)
+++ trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_failures_RSASSA-PKCS1-v1_5.html        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -7,7 +7,7 @@
</span><span class="cx"> &lt;script src=&quot;../../../../resources/testharness.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> 
</span><del>-&lt;script src=&quot;/WebCryptoAPI/util/helpers.js&quot;&gt;&lt;/script&gt;
</del><ins>+&lt;script src=&quot;../util/helpers.js&quot;&gt;&lt;/script&gt;
</ins><span class="cx"> &lt;script src=&quot;failures.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> 
</span><span class="cx"> &lt;h1&gt;generateKey Tests for Bad Parameters&lt;/h1&gt;
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cWebCryptoAPIgenerateKeytest_successesexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_successes-expected.txt (207808 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_successes-expected.txt        2016-10-25 05:26:35 UTC (rev 207808)
+++ trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_successes-expected.txt        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -1,3 +1,1392 @@
</span><del>-CONSOLE MESSAGE: line 20: ReferenceError: Can't find variable: CryptoKey
-FAIL: Timed out waiting for notifyDone to be called
</del><ins>+generateKey Tests for Good Parameters
</ins><span class="cx"> 
</span><ins>+Warning! RSA key generation is intrinsically very slow, so the related tests can take up to several minutes to complete, depending on browser!
+
+
+FAIL Success: generateKey({length: 128, name: AES-CTR}, false, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-CTR}, true, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-CTR}, false, [decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-CTR}, true, [decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-CTR}, false, [wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-CTR}, false, [unwrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-CTR}, false, [wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-CTR}, false, [unwrapKey, wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-CTR}, false, [unwrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-CTR}, false, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-CTR}, true, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-CTR}, false, [wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-CTR}, false, [unwrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-CTR}, false, [wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-CTR}, true, [wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-CTR}, false, [unwrapKey, wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-CTR}, false, [unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-CTR}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-CTR}, false, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-CTR}, true, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-CTR}, false, [decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-CTR}, true, [decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-CTR}, false, [wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-CTR}, false, [unwrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-CTR}, false, [wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-CTR}, false, [unwrapKey, wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-CTR}, false, [unwrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-CTR}, false, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-CTR}, true, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-CTR}, false, [wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-CTR}, false, [unwrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-CTR}, false, [wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-CTR}, true, [wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-CTR}, false, [unwrapKey, wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-CTR}, false, [unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-CTR}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-CTR}, false, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-CTR}, true, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-CTR}, false, [decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-CTR}, true, [decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-CTR}, false, [wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-CTR}, false, [unwrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-CTR}, false, [wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-CTR}, false, [unwrapKey, wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-CTR}, false, [unwrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-CTR}, false, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-CTR}, true, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-CTR}, false, [wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-CTR}, false, [unwrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-CTR}, false, [wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-CTR}, true, [wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-CTR}, false, [unwrapKey, wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-CTR}, false, [unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-CTR}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-ctr}, false, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-ctr}, true, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-ctr}, false, [decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-ctr}, true, [decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-ctr}, false, [wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-ctr}, true, [wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-ctr}, false, [unwrapKey, wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-ctr}, true, [unwrapKey, wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-ctr}, false, [unwrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-ctr}, true, [unwrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-ctr}, false, [wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-ctr}, true, [wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-ctr}, false, [unwrapKey, wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-ctr}, true, [unwrapKey, wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-ctr}, false, [unwrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-ctr}, true, [unwrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-ctr}, false, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-ctr}, true, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-ctr}, false, [wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-ctr}, true, [wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-ctr}, false, [unwrapKey, wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-ctr}, true, [unwrapKey, wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-ctr}, false, [unwrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-ctr}, true, [unwrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-ctr}, false, [wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-ctr}, true, [wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-ctr}, false, [unwrapKey, wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-ctr}, true, [unwrapKey, wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-ctr}, false, [unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-ctr}, true, [unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-ctr}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-ctr}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-ctr}, false, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-ctr}, true, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-ctr}, false, [decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-ctr}, true, [decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-ctr}, false, [wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-ctr}, true, [wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-ctr}, false, [unwrapKey, wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-ctr}, true, [unwrapKey, wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-ctr}, false, [unwrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-ctr}, true, [unwrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-ctr}, false, [wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-ctr}, true, [wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-ctr}, false, [unwrapKey, wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-ctr}, true, [unwrapKey, wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-ctr}, false, [unwrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-ctr}, true, [unwrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-ctr}, false, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-ctr}, true, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-ctr}, false, [wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-ctr}, true, [wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-ctr}, false, [unwrapKey, wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-ctr}, true, [unwrapKey, wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-ctr}, false, [unwrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-ctr}, true, [unwrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-ctr}, false, [wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-ctr}, true, [wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-ctr}, false, [unwrapKey, wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-ctr}, true, [unwrapKey, wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-ctr}, false, [unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-ctr}, true, [unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-ctr}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-ctr}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-ctr}, false, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-ctr}, true, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-ctr}, false, [decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-ctr}, true, [decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-ctr}, false, [wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-ctr}, true, [wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-ctr}, false, [unwrapKey, wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-ctr}, true, [unwrapKey, wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-ctr}, false, [unwrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-ctr}, true, [unwrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-ctr}, false, [wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-ctr}, true, [wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-ctr}, false, [unwrapKey, wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-ctr}, true, [unwrapKey, wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-ctr}, false, [unwrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-ctr}, true, [unwrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-ctr}, false, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-ctr}, true, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-ctr}, false, [wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-ctr}, true, [wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-ctr}, false, [unwrapKey, wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-ctr}, true, [unwrapKey, wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-ctr}, false, [unwrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-ctr}, true, [unwrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-ctr}, false, [wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-ctr}, true, [wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-ctr}, false, [unwrapKey, wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-ctr}, true, [unwrapKey, wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-ctr}, false, [unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-ctr}, true, [unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-ctr}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-ctr}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-ctr}, false, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-ctr}, true, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-ctr}, false, [decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-ctr}, true, [decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-ctr}, false, [wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-ctr}, true, [wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-ctr}, false, [unwrapKey, wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-ctr}, true, [unwrapKey, wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-ctr}, false, [unwrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-ctr}, true, [unwrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-ctr}, false, [wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-ctr}, true, [wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-ctr}, false, [unwrapKey, wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-ctr}, true, [unwrapKey, wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-ctr}, false, [unwrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-ctr}, true, [unwrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-ctr}, false, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-ctr}, true, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-ctr}, false, [wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-ctr}, true, [wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-ctr}, false, [unwrapKey, wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-ctr}, true, [unwrapKey, wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-ctr}, false, [unwrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-ctr}, true, [unwrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-ctr}, false, [wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-ctr}, true, [wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-ctr}, false, [unwrapKey, wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-ctr}, true, [unwrapKey, wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-ctr}, false, [unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-ctr}, true, [unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-ctr}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-ctr}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-ctr}, false, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-ctr}, true, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-ctr}, false, [decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-ctr}, true, [decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-ctr}, false, [wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-ctr}, true, [wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-ctr}, false, [unwrapKey, wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-ctr}, true, [unwrapKey, wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-ctr}, false, [unwrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-ctr}, true, [unwrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-ctr}, false, [wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-ctr}, true, [wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-ctr}, false, [unwrapKey, wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-ctr}, true, [unwrapKey, wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-ctr}, false, [unwrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-ctr}, true, [unwrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-ctr}, false, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-ctr}, true, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-ctr}, false, [wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-ctr}, true, [wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-ctr}, false, [unwrapKey, wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-ctr}, true, [unwrapKey, wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-ctr}, false, [unwrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-ctr}, true, [unwrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-ctr}, false, [wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-ctr}, true, [wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-ctr}, false, [unwrapKey, wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-ctr}, true, [unwrapKey, wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-ctr}, false, [unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-ctr}, true, [unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-ctr}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-ctr}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-ctr}, false, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-ctr}, true, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-ctr}, false, [decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-ctr}, true, [decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-ctr}, false, [wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-ctr}, true, [wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-ctr}, false, [unwrapKey, wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-ctr}, true, [unwrapKey, wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-ctr}, false, [unwrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-ctr}, true, [unwrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-ctr}, false, [wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-ctr}, true, [wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-ctr}, false, [unwrapKey, wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-ctr}, true, [unwrapKey, wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-ctr}, false, [unwrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-ctr}, true, [unwrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-ctr}, false, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-ctr}, true, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-ctr}, false, [wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-ctr}, true, [wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-ctr}, false, [unwrapKey, wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-ctr}, true, [unwrapKey, wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-ctr}, false, [unwrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-ctr}, true, [unwrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-ctr}, false, [wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-ctr}, true, [wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-ctr}, false, [unwrapKey, wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-ctr}, true, [unwrapKey, wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-ctr}, false, [unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-ctr}, true, [unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-ctr}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-ctr}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+PASS Success: generateKey({length: 128, name: AES-CBC}, false, [encrypt]) 
+PASS Success: generateKey({length: 128, name: AES-CBC}, true, [encrypt]) 
+PASS Success: generateKey({length: 128, name: AES-CBC}, false, [decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: AES-CBC}, true, [decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: AES-CBC}, false, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: AES-CBC}, false, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: AES-CBC}, false, [wrapKey, encrypt]) 
+PASS Success: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, encrypt]) 
+PASS Success: generateKey({length: 128, name: AES-CBC}, false, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({length: 128, name: AES-CBC}, false, [unwrapKey, encrypt]) 
+PASS Success: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, encrypt]) 
+PASS Success: generateKey({length: 128, name: AES-CBC}, false, [decrypt]) 
+PASS Success: generateKey({length: 128, name: AES-CBC}, true, [decrypt]) 
+PASS Success: generateKey({length: 128, name: AES-CBC}, false, [wrapKey, decrypt]) 
+PASS Success: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, decrypt]) 
+PASS Success: generateKey({length: 128, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({length: 128, name: AES-CBC}, false, [unwrapKey, decrypt]) 
+PASS Success: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, decrypt]) 
+PASS Success: generateKey({length: 128, name: AES-CBC}, false, [wrapKey]) 
+PASS Success: generateKey({length: 128, name: AES-CBC}, true, [wrapKey]) 
+PASS Success: generateKey({length: 128, name: AES-CBC}, false, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 128, name: AES-CBC}, false, [unwrapKey]) 
+PASS Success: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey]) 
+PASS Success: generateKey({length: 128, name: AES-CBC}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 128, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 192, name: AES-CBC}, false, [encrypt]) 
+PASS Success: generateKey({length: 192, name: AES-CBC}, true, [encrypt]) 
+PASS Success: generateKey({length: 192, name: AES-CBC}, false, [decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: AES-CBC}, true, [decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: AES-CBC}, false, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: AES-CBC}, false, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: AES-CBC}, false, [wrapKey, encrypt]) 
+PASS Success: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, encrypt]) 
+PASS Success: generateKey({length: 192, name: AES-CBC}, false, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({length: 192, name: AES-CBC}, false, [unwrapKey, encrypt]) 
+PASS Success: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, encrypt]) 
+PASS Success: generateKey({length: 192, name: AES-CBC}, false, [decrypt]) 
+PASS Success: generateKey({length: 192, name: AES-CBC}, true, [decrypt]) 
+PASS Success: generateKey({length: 192, name: AES-CBC}, false, [wrapKey, decrypt]) 
+PASS Success: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, decrypt]) 
+PASS Success: generateKey({length: 192, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({length: 192, name: AES-CBC}, false, [unwrapKey, decrypt]) 
+PASS Success: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, decrypt]) 
+PASS Success: generateKey({length: 192, name: AES-CBC}, false, [wrapKey]) 
+PASS Success: generateKey({length: 192, name: AES-CBC}, true, [wrapKey]) 
+PASS Success: generateKey({length: 192, name: AES-CBC}, false, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 192, name: AES-CBC}, false, [unwrapKey]) 
+PASS Success: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey]) 
+PASS Success: generateKey({length: 192, name: AES-CBC}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 192, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 256, name: AES-CBC}, false, [encrypt]) 
+PASS Success: generateKey({length: 256, name: AES-CBC}, true, [encrypt]) 
+PASS Success: generateKey({length: 256, name: AES-CBC}, false, [decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: AES-CBC}, true, [decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: AES-CBC}, false, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: AES-CBC}, false, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: AES-CBC}, false, [wrapKey, encrypt]) 
+PASS Success: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, encrypt]) 
+PASS Success: generateKey({length: 256, name: AES-CBC}, false, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({length: 256, name: AES-CBC}, false, [unwrapKey, encrypt]) 
+PASS Success: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, encrypt]) 
+PASS Success: generateKey({length: 256, name: AES-CBC}, false, [decrypt]) 
+PASS Success: generateKey({length: 256, name: AES-CBC}, true, [decrypt]) 
+PASS Success: generateKey({length: 256, name: AES-CBC}, false, [wrapKey, decrypt]) 
+PASS Success: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, decrypt]) 
+PASS Success: generateKey({length: 256, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({length: 256, name: AES-CBC}, false, [unwrapKey, decrypt]) 
+PASS Success: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, decrypt]) 
+PASS Success: generateKey({length: 256, name: AES-CBC}, false, [wrapKey]) 
+PASS Success: generateKey({length: 256, name: AES-CBC}, true, [wrapKey]) 
+PASS Success: generateKey({length: 256, name: AES-CBC}, false, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 256, name: AES-CBC}, false, [unwrapKey]) 
+PASS Success: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey]) 
+PASS Success: generateKey({length: 256, name: AES-CBC}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 256, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 128, name: aes-cbc}, false, [encrypt]) 
+PASS Success: generateKey({length: 128, name: aes-cbc}, true, [encrypt]) 
+PASS Success: generateKey({length: 128, name: aes-cbc}, false, [decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: aes-cbc}, true, [decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: aes-cbc}, false, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: aes-cbc}, true, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: aes-cbc}, false, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: aes-cbc}, true, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: aes-cbc}, false, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: aes-cbc}, true, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: aes-cbc}, false, [wrapKey, encrypt]) 
+PASS Success: generateKey({length: 128, name: aes-cbc}, true, [wrapKey, encrypt]) 
+PASS Success: generateKey({length: 128, name: aes-cbc}, false, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({length: 128, name: aes-cbc}, true, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({length: 128, name: aes-cbc}, false, [unwrapKey, encrypt]) 
+PASS Success: generateKey({length: 128, name: aes-cbc}, true, [unwrapKey, encrypt]) 
+PASS Success: generateKey({length: 128, name: aes-cbc}, false, [decrypt]) 
+PASS Success: generateKey({length: 128, name: aes-cbc}, true, [decrypt]) 
+PASS Success: generateKey({length: 128, name: aes-cbc}, false, [wrapKey, decrypt]) 
+PASS Success: generateKey({length: 128, name: aes-cbc}, true, [wrapKey, decrypt]) 
+PASS Success: generateKey({length: 128, name: aes-cbc}, false, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({length: 128, name: aes-cbc}, true, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({length: 128, name: aes-cbc}, false, [unwrapKey, decrypt]) 
+PASS Success: generateKey({length: 128, name: aes-cbc}, true, [unwrapKey, decrypt]) 
+PASS Success: generateKey({length: 128, name: aes-cbc}, false, [wrapKey]) 
+PASS Success: generateKey({length: 128, name: aes-cbc}, true, [wrapKey]) 
+PASS Success: generateKey({length: 128, name: aes-cbc}, false, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 128, name: aes-cbc}, true, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 128, name: aes-cbc}, false, [unwrapKey]) 
+PASS Success: generateKey({length: 128, name: aes-cbc}, true, [unwrapKey]) 
+PASS Success: generateKey({length: 128, name: aes-cbc}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 128, name: aes-cbc}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 192, name: aes-cbc}, false, [encrypt]) 
+PASS Success: generateKey({length: 192, name: aes-cbc}, true, [encrypt]) 
+PASS Success: generateKey({length: 192, name: aes-cbc}, false, [decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: aes-cbc}, true, [decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: aes-cbc}, false, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: aes-cbc}, true, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: aes-cbc}, false, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: aes-cbc}, true, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: aes-cbc}, false, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: aes-cbc}, true, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: aes-cbc}, false, [wrapKey, encrypt]) 
+PASS Success: generateKey({length: 192, name: aes-cbc}, true, [wrapKey, encrypt]) 
+PASS Success: generateKey({length: 192, name: aes-cbc}, false, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({length: 192, name: aes-cbc}, true, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({length: 192, name: aes-cbc}, false, [unwrapKey, encrypt]) 
+PASS Success: generateKey({length: 192, name: aes-cbc}, true, [unwrapKey, encrypt]) 
+PASS Success: generateKey({length: 192, name: aes-cbc}, false, [decrypt]) 
+PASS Success: generateKey({length: 192, name: aes-cbc}, true, [decrypt]) 
+PASS Success: generateKey({length: 192, name: aes-cbc}, false, [wrapKey, decrypt]) 
+PASS Success: generateKey({length: 192, name: aes-cbc}, true, [wrapKey, decrypt]) 
+PASS Success: generateKey({length: 192, name: aes-cbc}, false, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({length: 192, name: aes-cbc}, true, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({length: 192, name: aes-cbc}, false, [unwrapKey, decrypt]) 
+PASS Success: generateKey({length: 192, name: aes-cbc}, true, [unwrapKey, decrypt]) 
+PASS Success: generateKey({length: 192, name: aes-cbc}, false, [wrapKey]) 
+PASS Success: generateKey({length: 192, name: aes-cbc}, true, [wrapKey]) 
+PASS Success: generateKey({length: 192, name: aes-cbc}, false, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 192, name: aes-cbc}, true, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 192, name: aes-cbc}, false, [unwrapKey]) 
+PASS Success: generateKey({length: 192, name: aes-cbc}, true, [unwrapKey]) 
+PASS Success: generateKey({length: 192, name: aes-cbc}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 192, name: aes-cbc}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 256, name: aes-cbc}, false, [encrypt]) 
+PASS Success: generateKey({length: 256, name: aes-cbc}, true, [encrypt]) 
+PASS Success: generateKey({length: 256, name: aes-cbc}, false, [decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: aes-cbc}, true, [decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: aes-cbc}, false, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: aes-cbc}, true, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: aes-cbc}, false, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: aes-cbc}, true, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: aes-cbc}, false, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: aes-cbc}, true, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: aes-cbc}, false, [wrapKey, encrypt]) 
+PASS Success: generateKey({length: 256, name: aes-cbc}, true, [wrapKey, encrypt]) 
+PASS Success: generateKey({length: 256, name: aes-cbc}, false, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({length: 256, name: aes-cbc}, true, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({length: 256, name: aes-cbc}, false, [unwrapKey, encrypt]) 
+PASS Success: generateKey({length: 256, name: aes-cbc}, true, [unwrapKey, encrypt]) 
+PASS Success: generateKey({length: 256, name: aes-cbc}, false, [decrypt]) 
+PASS Success: generateKey({length: 256, name: aes-cbc}, true, [decrypt]) 
+PASS Success: generateKey({length: 256, name: aes-cbc}, false, [wrapKey, decrypt]) 
+PASS Success: generateKey({length: 256, name: aes-cbc}, true, [wrapKey, decrypt]) 
+PASS Success: generateKey({length: 256, name: aes-cbc}, false, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({length: 256, name: aes-cbc}, true, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({length: 256, name: aes-cbc}, false, [unwrapKey, decrypt]) 
+PASS Success: generateKey({length: 256, name: aes-cbc}, true, [unwrapKey, decrypt]) 
+PASS Success: generateKey({length: 256, name: aes-cbc}, false, [wrapKey]) 
+PASS Success: generateKey({length: 256, name: aes-cbc}, true, [wrapKey]) 
+PASS Success: generateKey({length: 256, name: aes-cbc}, false, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 256, name: aes-cbc}, true, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 256, name: aes-cbc}, false, [unwrapKey]) 
+PASS Success: generateKey({length: 256, name: aes-cbc}, true, [unwrapKey]) 
+PASS Success: generateKey({length: 256, name: aes-cbc}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 256, name: aes-cbc}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [encrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [encrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [wrapKey, encrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [wrapKey, encrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [unwrapKey, encrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [unwrapKey, encrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [decrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [decrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [wrapKey, decrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [wrapKey, decrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [unwrapKey, decrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [unwrapKey, decrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [wrapKey]) 
+PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [wrapKey]) 
+PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [unwrapKey]) 
+PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [unwrapKey]) 
+PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [encrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [encrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [wrapKey, encrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [wrapKey, encrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [unwrapKey, encrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [unwrapKey, encrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [decrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [decrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [wrapKey, decrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [wrapKey, decrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [unwrapKey, decrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [unwrapKey, decrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [wrapKey]) 
+PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [wrapKey]) 
+PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [unwrapKey]) 
+PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [unwrapKey]) 
+PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [encrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [encrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [wrapKey, encrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [wrapKey, encrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [unwrapKey, encrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [unwrapKey, encrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [decrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [decrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [wrapKey, decrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [wrapKey, decrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [unwrapKey, decrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [unwrapKey, decrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [wrapKey]) 
+PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [wrapKey]) 
+PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [unwrapKey]) 
+PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [unwrapKey]) 
+PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+FAIL Success: generateKey({length: 128, name: AES-GCM}, false, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-GCM}, true, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-GCM}, false, [decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-GCM}, true, [decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-GCM}, false, [wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-GCM}, false, [unwrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-GCM}, false, [wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-GCM}, false, [unwrapKey, wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-GCM}, false, [unwrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-GCM}, false, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-GCM}, true, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-GCM}, false, [wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-GCM}, false, [unwrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-GCM}, false, [wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-GCM}, true, [wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-GCM}, false, [unwrapKey, wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-GCM}, false, [unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-GCM}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-GCM}, false, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-GCM}, true, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-GCM}, false, [decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-GCM}, true, [decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-GCM}, false, [wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-GCM}, false, [unwrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-GCM}, false, [wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-GCM}, false, [unwrapKey, wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-GCM}, false, [unwrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-GCM}, false, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-GCM}, true, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-GCM}, false, [wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-GCM}, false, [unwrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-GCM}, false, [wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-GCM}, true, [wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-GCM}, false, [unwrapKey, wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-GCM}, false, [unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-GCM}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-GCM}, false, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-GCM}, true, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-GCM}, false, [decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-GCM}, true, [decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-GCM}, false, [wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-GCM}, false, [unwrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-GCM}, false, [wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-GCM}, false, [unwrapKey, wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-GCM}, false, [unwrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-GCM}, false, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-GCM}, true, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-GCM}, false, [wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-GCM}, false, [unwrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-GCM}, false, [wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-GCM}, true, [wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-GCM}, false, [unwrapKey, wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-GCM}, false, [unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-GCM}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-gcm}, false, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-gcm}, true, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-gcm}, false, [decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-gcm}, true, [decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-gcm}, false, [wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-gcm}, true, [wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-gcm}, false, [unwrapKey, wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-gcm}, true, [unwrapKey, wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-gcm}, false, [unwrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-gcm}, true, [unwrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-gcm}, false, [wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-gcm}, true, [wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-gcm}, false, [unwrapKey, wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-gcm}, true, [unwrapKey, wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-gcm}, false, [unwrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-gcm}, true, [unwrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-gcm}, false, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-gcm}, true, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-gcm}, false, [wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-gcm}, true, [wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-gcm}, false, [unwrapKey, wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-gcm}, true, [unwrapKey, wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-gcm}, false, [unwrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-gcm}, true, [unwrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-gcm}, false, [wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-gcm}, true, [wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-gcm}, false, [unwrapKey, wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-gcm}, true, [unwrapKey, wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-gcm}, false, [unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-gcm}, true, [unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-gcm}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-gcm}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-gcm}, false, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-gcm}, true, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-gcm}, false, [decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-gcm}, true, [decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-gcm}, false, [wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-gcm}, true, [wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-gcm}, false, [unwrapKey, wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-gcm}, true, [unwrapKey, wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-gcm}, false, [unwrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-gcm}, true, [unwrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-gcm}, false, [wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-gcm}, true, [wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-gcm}, false, [unwrapKey, wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-gcm}, true, [unwrapKey, wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-gcm}, false, [unwrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-gcm}, true, [unwrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-gcm}, false, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-gcm}, true, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-gcm}, false, [wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-gcm}, true, [wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-gcm}, false, [unwrapKey, wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-gcm}, true, [unwrapKey, wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-gcm}, false, [unwrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-gcm}, true, [unwrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-gcm}, false, [wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-gcm}, true, [wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-gcm}, false, [unwrapKey, wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-gcm}, true, [unwrapKey, wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-gcm}, false, [unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-gcm}, true, [unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-gcm}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-gcm}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-gcm}, false, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-gcm}, true, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-gcm}, false, [decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-gcm}, true, [decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-gcm}, false, [wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-gcm}, true, [wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-gcm}, false, [unwrapKey, wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-gcm}, true, [unwrapKey, wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-gcm}, false, [unwrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-gcm}, true, [unwrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-gcm}, false, [wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-gcm}, true, [wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-gcm}, false, [unwrapKey, wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-gcm}, true, [unwrapKey, wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-gcm}, false, [unwrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-gcm}, true, [unwrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-gcm}, false, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-gcm}, true, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-gcm}, false, [wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-gcm}, true, [wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-gcm}, false, [unwrapKey, wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-gcm}, true, [unwrapKey, wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-gcm}, false, [unwrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-gcm}, true, [unwrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-gcm}, false, [wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-gcm}, true, [wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-gcm}, false, [unwrapKey, wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-gcm}, true, [unwrapKey, wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-gcm}, false, [unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-gcm}, true, [unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-gcm}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-gcm}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-gcm}, false, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-gcm}, true, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-gcm}, false, [decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-gcm}, true, [decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-gcm}, false, [wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-gcm}, true, [wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-gcm}, false, [unwrapKey, wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-gcm}, true, [unwrapKey, wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-gcm}, false, [unwrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-gcm}, true, [unwrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-gcm}, false, [wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-gcm}, true, [wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-gcm}, false, [unwrapKey, wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-gcm}, true, [unwrapKey, wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-gcm}, false, [unwrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-gcm}, true, [unwrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-gcm}, false, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-gcm}, true, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-gcm}, false, [wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-gcm}, true, [wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-gcm}, false, [unwrapKey, wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-gcm}, true, [unwrapKey, wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-gcm}, false, [unwrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-gcm}, true, [unwrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-gcm}, false, [wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-gcm}, true, [wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-gcm}, false, [unwrapKey, wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-gcm}, true, [unwrapKey, wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-gcm}, false, [unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-gcm}, true, [unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-gcm}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-gcm}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-gcm}, false, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-gcm}, true, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-gcm}, false, [decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-gcm}, true, [decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-gcm}, false, [wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-gcm}, true, [wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-gcm}, false, [unwrapKey, wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-gcm}, true, [unwrapKey, wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-gcm}, false, [unwrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-gcm}, true, [unwrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-gcm}, false, [wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-gcm}, true, [wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-gcm}, false, [unwrapKey, wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-gcm}, true, [unwrapKey, wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-gcm}, false, [unwrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-gcm}, true, [unwrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-gcm}, false, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-gcm}, true, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-gcm}, false, [wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-gcm}, true, [wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-gcm}, false, [unwrapKey, wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-gcm}, true, [unwrapKey, wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-gcm}, false, [unwrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-gcm}, true, [unwrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-gcm}, false, [wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-gcm}, true, [wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-gcm}, false, [unwrapKey, wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-gcm}, true, [unwrapKey, wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-gcm}, false, [unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-gcm}, true, [unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-gcm}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-gcm}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-gcm}, false, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-gcm}, true, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-gcm}, false, [decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-gcm}, true, [decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-gcm}, false, [wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-gcm}, true, [wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-gcm}, false, [unwrapKey, wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-gcm}, true, [unwrapKey, wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-gcm}, false, [unwrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-gcm}, true, [unwrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-gcm}, false, [wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-gcm}, true, [wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-gcm}, false, [unwrapKey, wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-gcm}, true, [unwrapKey, wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-gcm}, false, [unwrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-gcm}, true, [unwrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-gcm}, false, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-gcm}, true, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-gcm}, false, [wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-gcm}, true, [wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-gcm}, false, [unwrapKey, wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-gcm}, true, [unwrapKey, wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-gcm}, false, [unwrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-gcm}, true, [unwrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-gcm}, false, [wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-gcm}, true, [wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-gcm}, false, [unwrapKey, wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-gcm}, true, [unwrapKey, wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-gcm}, false, [unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-gcm}, true, [unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-gcm}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-gcm}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+PASS Success: generateKey({length: 128, name: AES-KW}, false, [wrapKey]) 
+PASS Success: generateKey({length: 128, name: AES-KW}, true, [wrapKey]) 
+PASS Success: generateKey({length: 128, name: AES-KW}, false, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 128, name: AES-KW}, false, [unwrapKey]) 
+PASS Success: generateKey({length: 128, name: AES-KW}, true, [unwrapKey]) 
+PASS Success: generateKey({length: 128, name: AES-KW}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 128, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 192, name: AES-KW}, false, [wrapKey]) 
+PASS Success: generateKey({length: 192, name: AES-KW}, true, [wrapKey]) 
+PASS Success: generateKey({length: 192, name: AES-KW}, false, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 192, name: AES-KW}, false, [unwrapKey]) 
+PASS Success: generateKey({length: 192, name: AES-KW}, true, [unwrapKey]) 
+PASS Success: generateKey({length: 192, name: AES-KW}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 192, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 256, name: AES-KW}, false, [wrapKey]) 
+PASS Success: generateKey({length: 256, name: AES-KW}, true, [wrapKey]) 
+PASS Success: generateKey({length: 256, name: AES-KW}, false, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 256, name: AES-KW}, false, [unwrapKey]) 
+PASS Success: generateKey({length: 256, name: AES-KW}, true, [unwrapKey]) 
+PASS Success: generateKey({length: 256, name: AES-KW}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 256, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 128, name: aes-kw}, false, [wrapKey]) 
+PASS Success: generateKey({length: 128, name: aes-kw}, true, [wrapKey]) 
+PASS Success: generateKey({length: 128, name: aes-kw}, false, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 128, name: aes-kw}, true, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 128, name: aes-kw}, false, [unwrapKey]) 
+PASS Success: generateKey({length: 128, name: aes-kw}, true, [unwrapKey]) 
+PASS Success: generateKey({length: 128, name: aes-kw}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 128, name: aes-kw}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 192, name: aes-kw}, false, [wrapKey]) 
+PASS Success: generateKey({length: 192, name: aes-kw}, true, [wrapKey]) 
+PASS Success: generateKey({length: 192, name: aes-kw}, false, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 192, name: aes-kw}, true, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 192, name: aes-kw}, false, [unwrapKey]) 
+PASS Success: generateKey({length: 192, name: aes-kw}, true, [unwrapKey]) 
+PASS Success: generateKey({length: 192, name: aes-kw}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 192, name: aes-kw}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 256, name: aes-kw}, false, [wrapKey]) 
+PASS Success: generateKey({length: 256, name: aes-kw}, true, [wrapKey]) 
+PASS Success: generateKey({length: 256, name: aes-kw}, false, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 256, name: aes-kw}, true, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 256, name: aes-kw}, false, [unwrapKey]) 
+PASS Success: generateKey({length: 256, name: aes-kw}, true, [unwrapKey]) 
+PASS Success: generateKey({length: 256, name: aes-kw}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 256, name: aes-kw}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 128, name: Aes-kw}, false, [wrapKey]) 
+PASS Success: generateKey({length: 128, name: Aes-kw}, true, [wrapKey]) 
+PASS Success: generateKey({length: 128, name: Aes-kw}, false, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 128, name: Aes-kw}, true, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 128, name: Aes-kw}, false, [unwrapKey]) 
+PASS Success: generateKey({length: 128, name: Aes-kw}, true, [unwrapKey]) 
+PASS Success: generateKey({length: 128, name: Aes-kw}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 128, name: Aes-kw}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 192, name: Aes-kw}, false, [wrapKey]) 
+PASS Success: generateKey({length: 192, name: Aes-kw}, true, [wrapKey]) 
+PASS Success: generateKey({length: 192, name: Aes-kw}, false, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 192, name: Aes-kw}, true, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 192, name: Aes-kw}, false, [unwrapKey]) 
+PASS Success: generateKey({length: 192, name: Aes-kw}, true, [unwrapKey]) 
+PASS Success: generateKey({length: 192, name: Aes-kw}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 192, name: Aes-kw}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 256, name: Aes-kw}, false, [wrapKey]) 
+PASS Success: generateKey({length: 256, name: Aes-kw}, true, [wrapKey]) 
+PASS Success: generateKey({length: 256, name: Aes-kw}, false, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 256, name: Aes-kw}, true, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 256, name: Aes-kw}, false, [unwrapKey]) 
+PASS Success: generateKey({length: 256, name: Aes-kw}, true, [unwrapKey]) 
+PASS Success: generateKey({length: 256, name: Aes-kw}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 256, name: Aes-kw}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) 
+PASS Success: generateKey({hash: SHA-1, length: 160, name: HMAC}, false, [sign]) 
+PASS Success: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign]) 
+PASS Success: generateKey({hash: SHA-1, length: 160, name: HMAC}, false, [verify, sign]) 
+PASS Success: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, sign]) 
+PASS Success: generateKey({hash: SHA-1, length: 160, name: HMAC}, false, [verify]) 
+PASS Success: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify]) 
+PASS Success: generateKey({hash: SHA-1, length: 160, name: HMAC}, false, [sign, verify, sign, verify]) 
+PASS Success: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, verify, sign, verify]) 
+PASS Success: generateKey({hash: SHA-256, length: 256, name: HMAC}, false, [sign]) 
+PASS Success: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign]) 
+PASS Success: generateKey({hash: SHA-256, length: 256, name: HMAC}, false, [verify, sign]) 
+PASS Success: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, sign]) 
+PASS Success: generateKey({hash: SHA-256, length: 256, name: HMAC}, false, [verify]) 
+PASS Success: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify]) 
+PASS Success: generateKey({hash: SHA-256, length: 256, name: HMAC}, false, [sign, verify, sign, verify]) 
+PASS Success: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, verify, sign, verify]) 
+PASS Success: generateKey({hash: SHA-384, length: 384, name: HMAC}, false, [sign]) 
+PASS Success: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign]) 
+PASS Success: generateKey({hash: SHA-384, length: 384, name: HMAC}, false, [verify, sign]) 
+PASS Success: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, sign]) 
+PASS Success: generateKey({hash: SHA-384, length: 384, name: HMAC}, false, [verify]) 
+PASS Success: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify]) 
+PASS Success: generateKey({hash: SHA-384, length: 384, name: HMAC}, false, [sign, verify, sign, verify]) 
+PASS Success: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, verify, sign, verify]) 
+PASS Success: generateKey({hash: SHA-512, length: 512, name: HMAC}, false, [sign]) 
+PASS Success: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign]) 
+PASS Success: generateKey({hash: SHA-512, length: 512, name: HMAC}, false, [verify, sign]) 
+PASS Success: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, sign]) 
+PASS Success: generateKey({hash: SHA-512, length: 512, name: HMAC}, false, [verify]) 
+PASS Success: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify]) 
+PASS Success: generateKey({hash: SHA-512, length: 512, name: HMAC}, false, [sign, verify, sign, verify]) 
+PASS Success: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, verify, sign, verify]) 
+PASS Success: generateKey({hash: SHA-1, length: 160, name: hmac}, false, [sign]) 
+PASS Success: generateKey({hash: SHA-1, length: 160, name: hmac}, true, [sign]) 
+PASS Success: generateKey({hash: SHA-1, length: 160, name: hmac}, false, [verify, sign]) 
+PASS Success: generateKey({hash: SHA-1, length: 160, name: hmac}, true, [verify, sign]) 
+PASS Success: generateKey({hash: SHA-1, length: 160, name: hmac}, false, [verify]) 
+PASS Success: generateKey({hash: SHA-1, length: 160, name: hmac}, true, [verify]) 
+PASS Success: generateKey({hash: SHA-1, length: 160, name: hmac}, false, [sign, verify, sign, verify]) 
+PASS Success: generateKey({hash: SHA-1, length: 160, name: hmac}, true, [sign, verify, sign, verify]) 
+PASS Success: generateKey({hash: SHA-256, length: 256, name: hmac}, false, [sign]) 
+PASS Success: generateKey({hash: SHA-256, length: 256, name: hmac}, true, [sign]) 
+PASS Success: generateKey({hash: SHA-256, length: 256, name: hmac}, false, [verify, sign]) 
+PASS Success: generateKey({hash: SHA-256, length: 256, name: hmac}, true, [verify, sign]) 
+PASS Success: generateKey({hash: SHA-256, length: 256, name: hmac}, false, [verify]) 
+PASS Success: generateKey({hash: SHA-256, length: 256, name: hmac}, true, [verify]) 
+PASS Success: generateKey({hash: SHA-256, length: 256, name: hmac}, false, [sign, verify, sign, verify]) 
+PASS Success: generateKey({hash: SHA-256, length: 256, name: hmac}, true, [sign, verify, sign, verify]) 
+PASS Success: generateKey({hash: SHA-384, length: 384, name: hmac}, false, [sign]) 
+PASS Success: generateKey({hash: SHA-384, length: 384, name: hmac}, true, [sign]) 
+PASS Success: generateKey({hash: SHA-384, length: 384, name: hmac}, false, [verify, sign]) 
+PASS Success: generateKey({hash: SHA-384, length: 384, name: hmac}, true, [verify, sign]) 
+PASS Success: generateKey({hash: SHA-384, length: 384, name: hmac}, false, [verify]) 
+PASS Success: generateKey({hash: SHA-384, length: 384, name: hmac}, true, [verify]) 
+PASS Success: generateKey({hash: SHA-384, length: 384, name: hmac}, false, [sign, verify, sign, verify]) 
+PASS Success: generateKey({hash: SHA-384, length: 384, name: hmac}, true, [sign, verify, sign, verify]) 
+PASS Success: generateKey({hash: SHA-512, length: 512, name: hmac}, false, [sign]) 
+PASS Success: generateKey({hash: SHA-512, length: 512, name: hmac}, true, [sign]) 
+PASS Success: generateKey({hash: SHA-512, length: 512, name: hmac}, false, [verify, sign]) 
+PASS Success: generateKey({hash: SHA-512, length: 512, name: hmac}, true, [verify, sign]) 
+PASS Success: generateKey({hash: SHA-512, length: 512, name: hmac}, false, [verify]) 
+PASS Success: generateKey({hash: SHA-512, length: 512, name: hmac}, true, [verify]) 
+PASS Success: generateKey({hash: SHA-512, length: 512, name: hmac}, false, [sign, verify, sign, verify]) 
+PASS Success: generateKey({hash: SHA-512, length: 512, name: hmac}, true, [sign, verify, sign, verify]) 
+PASS Success: generateKey({hash: SHA-1, length: 160, name: Hmac}, false, [sign]) 
+PASS Success: generateKey({hash: SHA-1, length: 160, name: Hmac}, true, [sign]) 
+PASS Success: generateKey({hash: SHA-1, length: 160, name: Hmac}, false, [verify, sign]) 
+PASS Success: generateKey({hash: SHA-1, length: 160, name: Hmac}, true, [verify, sign]) 
+PASS Success: generateKey({hash: SHA-1, length: 160, name: Hmac}, false, [verify]) 
+PASS Success: generateKey({hash: SHA-1, length: 160, name: Hmac}, true, [verify]) 
+PASS Success: generateKey({hash: SHA-1, length: 160, name: Hmac}, false, [sign, verify, sign, verify]) 
+PASS Success: generateKey({hash: SHA-1, length: 160, name: Hmac}, true, [sign, verify, sign, verify]) 
+PASS Success: generateKey({hash: SHA-256, length: 256, name: Hmac}, false, [sign]) 
+PASS Success: generateKey({hash: SHA-256, length: 256, name: Hmac}, true, [sign]) 
+PASS Success: generateKey({hash: SHA-256, length: 256, name: Hmac}, false, [verify, sign]) 
+PASS Success: generateKey({hash: SHA-256, length: 256, name: Hmac}, true, [verify, sign]) 
+PASS Success: generateKey({hash: SHA-256, length: 256, name: Hmac}, false, [verify]) 
+PASS Success: generateKey({hash: SHA-256, length: 256, name: Hmac}, true, [verify]) 
+PASS Success: generateKey({hash: SHA-256, length: 256, name: Hmac}, false, [sign, verify, sign, verify]) 
+PASS Success: generateKey({hash: SHA-256, length: 256, name: Hmac}, true, [sign, verify, sign, verify]) 
+PASS Success: generateKey({hash: SHA-384, length: 384, name: Hmac}, false, [sign]) 
+PASS Success: generateKey({hash: SHA-384, length: 384, name: Hmac}, true, [sign]) 
+PASS Success: generateKey({hash: SHA-384, length: 384, name: Hmac}, false, [verify, sign]) 
+PASS Success: generateKey({hash: SHA-384, length: 384, name: Hmac}, true, [verify, sign]) 
+PASS Success: generateKey({hash: SHA-384, length: 384, name: Hmac}, false, [verify]) 
+PASS Success: generateKey({hash: SHA-384, length: 384, name: Hmac}, true, [verify]) 
+PASS Success: generateKey({hash: SHA-384, length: 384, name: Hmac}, false, [sign, verify, sign, verify]) 
+PASS Success: generateKey({hash: SHA-384, length: 384, name: Hmac}, true, [sign, verify, sign, verify]) 
+PASS Success: generateKey({hash: SHA-512, length: 512, name: Hmac}, false, [sign]) 
+PASS Success: generateKey({hash: SHA-512, length: 512, name: Hmac}, true, [sign]) 
+PASS Success: generateKey({hash: SHA-512, length: 512, name: Hmac}, false, [verify, sign]) 
+PASS Success: generateKey({hash: SHA-512, length: 512, name: Hmac}, true, [verify, sign]) 
+PASS Success: generateKey({hash: SHA-512, length: 512, name: Hmac}, false, [verify]) 
+PASS Success: generateKey({hash: SHA-512, length: 512, name: Hmac}, true, [verify]) 
+PASS Success: generateKey({hash: SHA-512, length: 512, name: Hmac}, false, [sign, verify, sign, verify]) 
+PASS Success: generateKey({hash: SHA-512, length: 512, name: Hmac}, true, [sign, verify, sign, verify]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-V1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-V1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-V1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [verify, sign]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-V1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-V1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, verify, sign, sign, verify]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-V1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-V1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-V1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-V1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [verify, sign]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-V1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-V1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, verify, sign, sign, verify]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-V1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [verify, sign]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, verify, sign, sign, verify]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [verify, sign]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, verify, sign, sign, verify]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [verify, sign]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, verify, sign, sign, verify]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [verify, sign]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, verify, sign, sign, verify]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify]) 
+FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [verify, sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, verify, sign, sign, verify]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [verify, sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, verify, sign, sign, verify]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [verify, sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, verify, sign, sign, verify]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [verify, sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, verify, sign, sign, verify]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [verify, sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, verify, sign, sign, verify]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [verify, sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, verify, sign, sign, verify]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, encrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, encrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, encrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, encrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [wrapKey, decrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, decrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, encrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, encrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, encrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, encrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [wrapKey, decrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, decrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, encrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, encrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, encrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, encrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [wrapKey, decrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, decrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, encrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, encrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, encrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, encrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [wrapKey, decrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, decrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, encrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, encrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, encrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, encrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [wrapKey, decrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, decrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, encrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, encrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, encrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, encrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [wrapKey, decrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, decrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+FAIL Success: generateKey({name: ECDSA, namedCurve: P-256}, false, [sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ECDSA, namedCurve: P-256}, false, [verify, sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ECDSA, namedCurve: P-256}, true, [verify, sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ECDSA, namedCurve: P-256}, false, [sign, verify, sign, sign, verify]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, verify, sign, sign, verify]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ECDSA, namedCurve: P-384}, false, [sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ECDSA, namedCurve: P-384}, false, [verify, sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ECDSA, namedCurve: P-384}, true, [verify, sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ECDSA, namedCurve: P-384}, false, [sign, verify, sign, sign, verify]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, verify, sign, sign, verify]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ECDSA, namedCurve: P-521}, false, [sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ECDSA, namedCurve: P-521}, false, [verify, sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ECDSA, namedCurve: P-521}, true, [verify, sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ECDSA, namedCurve: P-521}, false, [sign, verify, sign, sign, verify]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, verify, sign, sign, verify]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ecdsa, namedCurve: P-256}, false, [sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ecdsa, namedCurve: P-256}, true, [sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ecdsa, namedCurve: P-256}, false, [verify, sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ecdsa, namedCurve: P-256}, true, [verify, sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ecdsa, namedCurve: P-256}, false, [sign, verify, sign, sign, verify]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ecdsa, namedCurve: P-256}, true, [sign, verify, sign, sign, verify]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ecdsa, namedCurve: P-384}, false, [sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ecdsa, namedCurve: P-384}, true, [sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ecdsa, namedCurve: P-384}, false, [verify, sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ecdsa, namedCurve: P-384}, true, [verify, sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ecdsa, namedCurve: P-384}, false, [sign, verify, sign, sign, verify]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ecdsa, namedCurve: P-384}, true, [sign, verify, sign, sign, verify]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ecdsa, namedCurve: P-521}, false, [sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ecdsa, namedCurve: P-521}, true, [sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ecdsa, namedCurve: P-521}, false, [verify, sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ecdsa, namedCurve: P-521}, true, [verify, sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ecdsa, namedCurve: P-521}, false, [sign, verify, sign, sign, verify]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ecdsa, namedCurve: P-521}, true, [sign, verify, sign, sign, verify]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: Ecdsa, namedCurve: P-256}, false, [sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: Ecdsa, namedCurve: P-256}, true, [sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: Ecdsa, namedCurve: P-256}, false, [verify, sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: Ecdsa, namedCurve: P-256}, true, [verify, sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: Ecdsa, namedCurve: P-256}, false, [sign, verify, sign, sign, verify]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: Ecdsa, namedCurve: P-256}, true, [sign, verify, sign, sign, verify]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: Ecdsa, namedCurve: P-384}, false, [sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: Ecdsa, namedCurve: P-384}, true, [sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: Ecdsa, namedCurve: P-384}, false, [verify, sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: Ecdsa, namedCurve: P-384}, true, [verify, sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: Ecdsa, namedCurve: P-384}, false, [sign, verify, sign, sign, verify]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: Ecdsa, namedCurve: P-384}, true, [sign, verify, sign, sign, verify]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: Ecdsa, namedCurve: P-521}, false, [sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: Ecdsa, namedCurve: P-521}, true, [sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: Ecdsa, namedCurve: P-521}, false, [verify, sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: Ecdsa, namedCurve: P-521}, true, [verify, sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: Ecdsa, namedCurve: P-521}, false, [sign, verify, sign, sign, verify]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: Ecdsa, namedCurve: P-521}, true, [sign, verify, sign, sign, verify]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ECDH, namedCurve: P-256}, false, [deriveKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ECDH, namedCurve: P-256}, false, [deriveBits, deriveKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, deriveKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ECDH, namedCurve: P-256}, false, [deriveBits]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ECDH, namedCurve: P-256}, false, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ECDH, namedCurve: P-384}, false, [deriveKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ECDH, namedCurve: P-384}, false, [deriveBits, deriveKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, deriveKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ECDH, namedCurve: P-384}, false, [deriveBits]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ECDH, namedCurve: P-384}, false, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ECDH, namedCurve: P-521}, false, [deriveKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ECDH, namedCurve: P-521}, false, [deriveBits, deriveKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, deriveKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ECDH, namedCurve: P-521}, false, [deriveBits]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ECDH, namedCurve: P-521}, false, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ecdh, namedCurve: P-256}, false, [deriveKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ecdh, namedCurve: P-256}, true, [deriveKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ecdh, namedCurve: P-256}, false, [deriveBits, deriveKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ecdh, namedCurve: P-256}, true, [deriveBits, deriveKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ecdh, namedCurve: P-256}, false, [deriveBits]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ecdh, namedCurve: P-256}, true, [deriveBits]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ecdh, namedCurve: P-256}, false, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ecdh, namedCurve: P-256}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ecdh, namedCurve: P-384}, false, [deriveKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ecdh, namedCurve: P-384}, true, [deriveKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ecdh, namedCurve: P-384}, false, [deriveBits, deriveKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ecdh, namedCurve: P-384}, true, [deriveBits, deriveKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ecdh, namedCurve: P-384}, false, [deriveBits]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ecdh, namedCurve: P-384}, true, [deriveBits]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ecdh, namedCurve: P-384}, false, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ecdh, namedCurve: P-384}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ecdh, namedCurve: P-521}, false, [deriveKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ecdh, namedCurve: P-521}, true, [deriveKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ecdh, namedCurve: P-521}, false, [deriveBits, deriveKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ecdh, namedCurve: P-521}, true, [deriveBits, deriveKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ecdh, namedCurve: P-521}, false, [deriveBits]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ecdh, namedCurve: P-521}, true, [deriveBits]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ecdh, namedCurve: P-521}, false, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ecdh, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: Ecdh, namedCurve: P-256}, false, [deriveKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: Ecdh, namedCurve: P-256}, true, [deriveKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: Ecdh, namedCurve: P-256}, false, [deriveBits, deriveKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: Ecdh, namedCurve: P-256}, true, [deriveBits, deriveKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: Ecdh, namedCurve: P-256}, false, [deriveBits]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: Ecdh, namedCurve: P-256}, true, [deriveBits]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: Ecdh, namedCurve: P-256}, false, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: Ecdh, namedCurve: P-256}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: Ecdh, namedCurve: P-384}, false, [deriveKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: Ecdh, namedCurve: P-384}, true, [deriveKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: Ecdh, namedCurve: P-384}, false, [deriveBits, deriveKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: Ecdh, namedCurve: P-384}, true, [deriveBits, deriveKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: Ecdh, namedCurve: P-384}, false, [deriveBits]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: Ecdh, namedCurve: P-384}, true, [deriveBits]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: Ecdh, namedCurve: P-384}, false, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: Ecdh, namedCurve: P-384}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: Ecdh, namedCurve: P-521}, false, [deriveKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: Ecdh, namedCurve: P-521}, true, [deriveKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: Ecdh, namedCurve: P-521}, false, [deriveBits, deriveKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: Ecdh, namedCurve: P-521}, true, [deriveBits, deriveKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: Ecdh, namedCurve: P-521}, false, [deriveBits]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: Ecdh, namedCurve: P-521}, true, [deriveBits]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: Ecdh, namedCurve: P-521}, false, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: Ecdh, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cWebCryptoAPIgenerateKeytest_successeshtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_successes.html (207808 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_successes.html        2016-10-25 05:26:35 UTC (rev 207808)
+++ trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_successes.html        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -7,7 +7,7 @@
</span><span class="cx"> &lt;script src=&quot;../../../../resources/testharness.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> 
</span><del>-&lt;script src=&quot;/WebCryptoAPI/util/helpers.js&quot;&gt;&lt;/script&gt;
</del><ins>+&lt;script src=&quot;../util/helpers.js&quot;&gt;&lt;/script&gt;
</ins><span class="cx"> &lt;script src=&quot;successes.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> 
</span><span class="cx"> &lt;h1&gt;generateKey Tests for Good Parameters&lt;/h1&gt;
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cWebCryptoAPIgenerateKeytest_successes_AESCBCexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_successes_AES-CBC-expected.txt (207808 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_successes_AES-CBC-expected.txt        2016-10-25 05:26:35 UTC (rev 207808)
+++ trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_successes_AES-CBC-expected.txt        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -1,3 +1,294 @@
</span><del>-CONSOLE MESSAGE: line 20: ReferenceError: Can't find variable: CryptoKey
-FAIL: Timed out waiting for notifyDone to be called
</del><ins>+generateKey Tests for Good Parameters
</ins><span class="cx"> 
</span><ins>+Warning! RSA key generation is intrinsically very slow, so the related tests can take up to several minutes to complete, depending on browser!
+
+
+PASS Success: generateKey({length: 128, name: AES-CBC}, false, [encrypt]) 
+PASS Success: generateKey({length: 128, name: AES-CBC}, true, [encrypt]) 
+PASS Success: generateKey({length: 128, name: AES-CBC}, false, [decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: AES-CBC}, true, [decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: AES-CBC}, false, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: AES-CBC}, false, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: AES-CBC}, false, [wrapKey, encrypt]) 
+PASS Success: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, encrypt]) 
+PASS Success: generateKey({length: 128, name: AES-CBC}, false, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({length: 128, name: AES-CBC}, false, [unwrapKey, encrypt]) 
+PASS Success: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, encrypt]) 
+PASS Success: generateKey({length: 128, name: AES-CBC}, false, [decrypt]) 
+PASS Success: generateKey({length: 128, name: AES-CBC}, true, [decrypt]) 
+PASS Success: generateKey({length: 128, name: AES-CBC}, false, [wrapKey, decrypt]) 
+PASS Success: generateKey({length: 128, name: AES-CBC}, true, [wrapKey, decrypt]) 
+PASS Success: generateKey({length: 128, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({length: 128, name: AES-CBC}, false, [unwrapKey, decrypt]) 
+PASS Success: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, decrypt]) 
+PASS Success: generateKey({length: 128, name: AES-CBC}, false, [wrapKey]) 
+PASS Success: generateKey({length: 128, name: AES-CBC}, true, [wrapKey]) 
+PASS Success: generateKey({length: 128, name: AES-CBC}, false, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 128, name: AES-CBC}, false, [unwrapKey]) 
+PASS Success: generateKey({length: 128, name: AES-CBC}, true, [unwrapKey]) 
+PASS Success: generateKey({length: 128, name: AES-CBC}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 128, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 192, name: AES-CBC}, false, [encrypt]) 
+PASS Success: generateKey({length: 192, name: AES-CBC}, true, [encrypt]) 
+PASS Success: generateKey({length: 192, name: AES-CBC}, false, [decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: AES-CBC}, true, [decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: AES-CBC}, false, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: AES-CBC}, false, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: AES-CBC}, false, [wrapKey, encrypt]) 
+PASS Success: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, encrypt]) 
+PASS Success: generateKey({length: 192, name: AES-CBC}, false, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({length: 192, name: AES-CBC}, false, [unwrapKey, encrypt]) 
+PASS Success: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, encrypt]) 
+PASS Success: generateKey({length: 192, name: AES-CBC}, false, [decrypt]) 
+PASS Success: generateKey({length: 192, name: AES-CBC}, true, [decrypt]) 
+PASS Success: generateKey({length: 192, name: AES-CBC}, false, [wrapKey, decrypt]) 
+PASS Success: generateKey({length: 192, name: AES-CBC}, true, [wrapKey, decrypt]) 
+PASS Success: generateKey({length: 192, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({length: 192, name: AES-CBC}, false, [unwrapKey, decrypt]) 
+PASS Success: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, decrypt]) 
+PASS Success: generateKey({length: 192, name: AES-CBC}, false, [wrapKey]) 
+PASS Success: generateKey({length: 192, name: AES-CBC}, true, [wrapKey]) 
+PASS Success: generateKey({length: 192, name: AES-CBC}, false, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 192, name: AES-CBC}, false, [unwrapKey]) 
+PASS Success: generateKey({length: 192, name: AES-CBC}, true, [unwrapKey]) 
+PASS Success: generateKey({length: 192, name: AES-CBC}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 192, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 256, name: AES-CBC}, false, [encrypt]) 
+PASS Success: generateKey({length: 256, name: AES-CBC}, true, [encrypt]) 
+PASS Success: generateKey({length: 256, name: AES-CBC}, false, [decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: AES-CBC}, true, [decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: AES-CBC}, false, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: AES-CBC}, false, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: AES-CBC}, false, [wrapKey, encrypt]) 
+PASS Success: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, encrypt]) 
+PASS Success: generateKey({length: 256, name: AES-CBC}, false, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({length: 256, name: AES-CBC}, false, [unwrapKey, encrypt]) 
+PASS Success: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, encrypt]) 
+PASS Success: generateKey({length: 256, name: AES-CBC}, false, [decrypt]) 
+PASS Success: generateKey({length: 256, name: AES-CBC}, true, [decrypt]) 
+PASS Success: generateKey({length: 256, name: AES-CBC}, false, [wrapKey, decrypt]) 
+PASS Success: generateKey({length: 256, name: AES-CBC}, true, [wrapKey, decrypt]) 
+PASS Success: generateKey({length: 256, name: AES-CBC}, false, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({length: 256, name: AES-CBC}, false, [unwrapKey, decrypt]) 
+PASS Success: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, decrypt]) 
+PASS Success: generateKey({length: 256, name: AES-CBC}, false, [wrapKey]) 
+PASS Success: generateKey({length: 256, name: AES-CBC}, true, [wrapKey]) 
+PASS Success: generateKey({length: 256, name: AES-CBC}, false, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 256, name: AES-CBC}, false, [unwrapKey]) 
+PASS Success: generateKey({length: 256, name: AES-CBC}, true, [unwrapKey]) 
+PASS Success: generateKey({length: 256, name: AES-CBC}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 256, name: AES-CBC}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 128, name: aes-cbc}, false, [encrypt]) 
+PASS Success: generateKey({length: 128, name: aes-cbc}, true, [encrypt]) 
+PASS Success: generateKey({length: 128, name: aes-cbc}, false, [decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: aes-cbc}, true, [decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: aes-cbc}, false, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: aes-cbc}, true, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: aes-cbc}, false, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: aes-cbc}, true, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: aes-cbc}, false, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: aes-cbc}, true, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: aes-cbc}, false, [wrapKey, encrypt]) 
+PASS Success: generateKey({length: 128, name: aes-cbc}, true, [wrapKey, encrypt]) 
+PASS Success: generateKey({length: 128, name: aes-cbc}, false, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({length: 128, name: aes-cbc}, true, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({length: 128, name: aes-cbc}, false, [unwrapKey, encrypt]) 
+PASS Success: generateKey({length: 128, name: aes-cbc}, true, [unwrapKey, encrypt]) 
+PASS Success: generateKey({length: 128, name: aes-cbc}, false, [decrypt]) 
+PASS Success: generateKey({length: 128, name: aes-cbc}, true, [decrypt]) 
+PASS Success: generateKey({length: 128, name: aes-cbc}, false, [wrapKey, decrypt]) 
+PASS Success: generateKey({length: 128, name: aes-cbc}, true, [wrapKey, decrypt]) 
+PASS Success: generateKey({length: 128, name: aes-cbc}, false, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({length: 128, name: aes-cbc}, true, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({length: 128, name: aes-cbc}, false, [unwrapKey, decrypt]) 
+PASS Success: generateKey({length: 128, name: aes-cbc}, true, [unwrapKey, decrypt]) 
+PASS Success: generateKey({length: 128, name: aes-cbc}, false, [wrapKey]) 
+PASS Success: generateKey({length: 128, name: aes-cbc}, true, [wrapKey]) 
+PASS Success: generateKey({length: 128, name: aes-cbc}, false, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 128, name: aes-cbc}, true, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 128, name: aes-cbc}, false, [unwrapKey]) 
+PASS Success: generateKey({length: 128, name: aes-cbc}, true, [unwrapKey]) 
+PASS Success: generateKey({length: 128, name: aes-cbc}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 128, name: aes-cbc}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 192, name: aes-cbc}, false, [encrypt]) 
+PASS Success: generateKey({length: 192, name: aes-cbc}, true, [encrypt]) 
+PASS Success: generateKey({length: 192, name: aes-cbc}, false, [decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: aes-cbc}, true, [decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: aes-cbc}, false, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: aes-cbc}, true, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: aes-cbc}, false, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: aes-cbc}, true, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: aes-cbc}, false, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: aes-cbc}, true, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: aes-cbc}, false, [wrapKey, encrypt]) 
+PASS Success: generateKey({length: 192, name: aes-cbc}, true, [wrapKey, encrypt]) 
+PASS Success: generateKey({length: 192, name: aes-cbc}, false, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({length: 192, name: aes-cbc}, true, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({length: 192, name: aes-cbc}, false, [unwrapKey, encrypt]) 
+PASS Success: generateKey({length: 192, name: aes-cbc}, true, [unwrapKey, encrypt]) 
+PASS Success: generateKey({length: 192, name: aes-cbc}, false, [decrypt]) 
+PASS Success: generateKey({length: 192, name: aes-cbc}, true, [decrypt]) 
+PASS Success: generateKey({length: 192, name: aes-cbc}, false, [wrapKey, decrypt]) 
+PASS Success: generateKey({length: 192, name: aes-cbc}, true, [wrapKey, decrypt]) 
+PASS Success: generateKey({length: 192, name: aes-cbc}, false, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({length: 192, name: aes-cbc}, true, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({length: 192, name: aes-cbc}, false, [unwrapKey, decrypt]) 
+PASS Success: generateKey({length: 192, name: aes-cbc}, true, [unwrapKey, decrypt]) 
+PASS Success: generateKey({length: 192, name: aes-cbc}, false, [wrapKey]) 
+PASS Success: generateKey({length: 192, name: aes-cbc}, true, [wrapKey]) 
+PASS Success: generateKey({length: 192, name: aes-cbc}, false, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 192, name: aes-cbc}, true, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 192, name: aes-cbc}, false, [unwrapKey]) 
+PASS Success: generateKey({length: 192, name: aes-cbc}, true, [unwrapKey]) 
+PASS Success: generateKey({length: 192, name: aes-cbc}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 192, name: aes-cbc}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 256, name: aes-cbc}, false, [encrypt]) 
+PASS Success: generateKey({length: 256, name: aes-cbc}, true, [encrypt]) 
+PASS Success: generateKey({length: 256, name: aes-cbc}, false, [decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: aes-cbc}, true, [decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: aes-cbc}, false, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: aes-cbc}, true, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: aes-cbc}, false, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: aes-cbc}, true, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: aes-cbc}, false, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: aes-cbc}, true, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: aes-cbc}, false, [wrapKey, encrypt]) 
+PASS Success: generateKey({length: 256, name: aes-cbc}, true, [wrapKey, encrypt]) 
+PASS Success: generateKey({length: 256, name: aes-cbc}, false, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({length: 256, name: aes-cbc}, true, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({length: 256, name: aes-cbc}, false, [unwrapKey, encrypt]) 
+PASS Success: generateKey({length: 256, name: aes-cbc}, true, [unwrapKey, encrypt]) 
+PASS Success: generateKey({length: 256, name: aes-cbc}, false, [decrypt]) 
+PASS Success: generateKey({length: 256, name: aes-cbc}, true, [decrypt]) 
+PASS Success: generateKey({length: 256, name: aes-cbc}, false, [wrapKey, decrypt]) 
+PASS Success: generateKey({length: 256, name: aes-cbc}, true, [wrapKey, decrypt]) 
+PASS Success: generateKey({length: 256, name: aes-cbc}, false, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({length: 256, name: aes-cbc}, true, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({length: 256, name: aes-cbc}, false, [unwrapKey, decrypt]) 
+PASS Success: generateKey({length: 256, name: aes-cbc}, true, [unwrapKey, decrypt]) 
+PASS Success: generateKey({length: 256, name: aes-cbc}, false, [wrapKey]) 
+PASS Success: generateKey({length: 256, name: aes-cbc}, true, [wrapKey]) 
+PASS Success: generateKey({length: 256, name: aes-cbc}, false, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 256, name: aes-cbc}, true, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 256, name: aes-cbc}, false, [unwrapKey]) 
+PASS Success: generateKey({length: 256, name: aes-cbc}, true, [unwrapKey]) 
+PASS Success: generateKey({length: 256, name: aes-cbc}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 256, name: aes-cbc}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [encrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [encrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [wrapKey, encrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [wrapKey, encrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [unwrapKey, encrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [unwrapKey, encrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [decrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [decrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [wrapKey, decrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [wrapKey, decrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [unwrapKey, decrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [unwrapKey, decrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [wrapKey]) 
+PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [wrapKey]) 
+PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [unwrapKey]) 
+PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [unwrapKey]) 
+PASS Success: generateKey({length: 128, name: Aes-cbc}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 128, name: Aes-cbc}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [encrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [encrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [wrapKey, encrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [wrapKey, encrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [unwrapKey, encrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [unwrapKey, encrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [decrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [decrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [wrapKey, decrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [wrapKey, decrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [unwrapKey, decrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [unwrapKey, decrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [wrapKey]) 
+PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [wrapKey]) 
+PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [unwrapKey]) 
+PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [unwrapKey]) 
+PASS Success: generateKey({length: 192, name: Aes-cbc}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 192, name: Aes-cbc}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [encrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [encrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [wrapKey, encrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [wrapKey, encrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [unwrapKey, encrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [unwrapKey, encrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [decrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [decrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [wrapKey, decrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [wrapKey, decrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [unwrapKey, decrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [unwrapKey, decrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [wrapKey]) 
+PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [wrapKey]) 
+PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [unwrapKey]) 
+PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [unwrapKey]) 
+PASS Success: generateKey({length: 256, name: Aes-cbc}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 256, name: Aes-cbc}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cWebCryptoAPIgenerateKeytest_successes_AESCBChtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_successes_AES-CBC.html (207808 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_successes_AES-CBC.html        2016-10-25 05:26:35 UTC (rev 207808)
+++ trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_successes_AES-CBC.html        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -7,7 +7,7 @@
</span><span class="cx"> &lt;script src=&quot;../../../../resources/testharness.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> 
</span><del>-&lt;script src=&quot;/WebCryptoAPI/util/helpers.js&quot;&gt;&lt;/script&gt;
</del><ins>+&lt;script src=&quot;../util/helpers.js&quot;&gt;&lt;/script&gt;
</ins><span class="cx"> &lt;script src=&quot;successes.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> 
</span><span class="cx"> &lt;h1&gt;generateKey Tests for Good Parameters&lt;/h1&gt;
</span><span class="lines">@@ -20,4 +20,4 @@
</span><span class="cx"> &lt;div id=&quot;log&quot;&gt;&lt;/div&gt;
</span><span class="cx"> &lt;script&gt;
</span><span class="cx"> run_test([&quot;AES-CBC&quot;]);
</span><del>-&lt;/script&gt;
</del><span class="cx">\ No newline at end of file
</span><ins>+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cWebCryptoAPIgenerateKeytest_successes_AESCTRexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_successes_AES-CTR-expected.txt (207808 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_successes_AES-CTR-expected.txt        2016-10-25 05:26:35 UTC (rev 207808)
+++ trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_successes_AES-CTR-expected.txt        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -1,3 +1,294 @@
</span><del>-CONSOLE MESSAGE: line 20: ReferenceError: Can't find variable: CryptoKey
-FAIL: Timed out waiting for notifyDone to be called
</del><ins>+generateKey Tests for Good Parameters
</ins><span class="cx"> 
</span><ins>+Warning! RSA key generation is intrinsically very slow, so the related tests can take up to several minutes to complete, depending on browser!
+
+
+FAIL Success: generateKey({length: 128, name: AES-CTR}, false, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-CTR}, true, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-CTR}, false, [decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-CTR}, true, [decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-CTR}, false, [wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-CTR}, false, [unwrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-CTR}, false, [wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-CTR}, false, [unwrapKey, wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-CTR}, false, [unwrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-CTR}, false, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-CTR}, true, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-CTR}, false, [wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-CTR}, true, [wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-CTR}, false, [unwrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-CTR}, false, [wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-CTR}, true, [wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-CTR}, false, [unwrapKey, wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey, wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-CTR}, false, [unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-CTR}, true, [unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-CTR}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-CTR}, false, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-CTR}, true, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-CTR}, false, [decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-CTR}, true, [decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-CTR}, false, [wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-CTR}, false, [unwrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-CTR}, false, [wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-CTR}, false, [unwrapKey, wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-CTR}, false, [unwrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-CTR}, false, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-CTR}, true, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-CTR}, false, [wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-CTR}, true, [wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-CTR}, false, [unwrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-CTR}, false, [wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-CTR}, true, [wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-CTR}, false, [unwrapKey, wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey, wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-CTR}, false, [unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-CTR}, true, [unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-CTR}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-CTR}, false, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-CTR}, true, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-CTR}, false, [decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-CTR}, true, [decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-CTR}, false, [wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-CTR}, false, [unwrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-CTR}, false, [wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-CTR}, false, [unwrapKey, wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-CTR}, false, [unwrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-CTR}, false, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-CTR}, true, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-CTR}, false, [wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-CTR}, true, [wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-CTR}, false, [unwrapKey, wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-CTR}, false, [unwrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-CTR}, false, [wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-CTR}, true, [wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-CTR}, false, [unwrapKey, wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey, wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-CTR}, false, [unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-CTR}, true, [unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-CTR}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-CTR}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-ctr}, false, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-ctr}, true, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-ctr}, false, [decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-ctr}, true, [decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-ctr}, false, [wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-ctr}, true, [wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-ctr}, false, [unwrapKey, wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-ctr}, true, [unwrapKey, wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-ctr}, false, [unwrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-ctr}, true, [unwrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-ctr}, false, [wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-ctr}, true, [wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-ctr}, false, [unwrapKey, wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-ctr}, true, [unwrapKey, wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-ctr}, false, [unwrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-ctr}, true, [unwrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-ctr}, false, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-ctr}, true, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-ctr}, false, [wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-ctr}, true, [wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-ctr}, false, [unwrapKey, wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-ctr}, true, [unwrapKey, wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-ctr}, false, [unwrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-ctr}, true, [unwrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-ctr}, false, [wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-ctr}, true, [wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-ctr}, false, [unwrapKey, wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-ctr}, true, [unwrapKey, wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-ctr}, false, [unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-ctr}, true, [unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-ctr}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-ctr}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-ctr}, false, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-ctr}, true, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-ctr}, false, [decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-ctr}, true, [decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-ctr}, false, [wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-ctr}, true, [wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-ctr}, false, [unwrapKey, wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-ctr}, true, [unwrapKey, wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-ctr}, false, [unwrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-ctr}, true, [unwrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-ctr}, false, [wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-ctr}, true, [wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-ctr}, false, [unwrapKey, wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-ctr}, true, [unwrapKey, wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-ctr}, false, [unwrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-ctr}, true, [unwrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-ctr}, false, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-ctr}, true, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-ctr}, false, [wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-ctr}, true, [wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-ctr}, false, [unwrapKey, wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-ctr}, true, [unwrapKey, wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-ctr}, false, [unwrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-ctr}, true, [unwrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-ctr}, false, [wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-ctr}, true, [wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-ctr}, false, [unwrapKey, wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-ctr}, true, [unwrapKey, wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-ctr}, false, [unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-ctr}, true, [unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-ctr}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-ctr}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-ctr}, false, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-ctr}, true, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-ctr}, false, [decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-ctr}, true, [decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-ctr}, false, [wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-ctr}, true, [wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-ctr}, false, [unwrapKey, wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-ctr}, true, [unwrapKey, wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-ctr}, false, [unwrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-ctr}, true, [unwrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-ctr}, false, [wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-ctr}, true, [wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-ctr}, false, [unwrapKey, wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-ctr}, true, [unwrapKey, wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-ctr}, false, [unwrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-ctr}, true, [unwrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-ctr}, false, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-ctr}, true, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-ctr}, false, [wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-ctr}, true, [wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-ctr}, false, [unwrapKey, wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-ctr}, true, [unwrapKey, wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-ctr}, false, [unwrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-ctr}, true, [unwrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-ctr}, false, [wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-ctr}, true, [wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-ctr}, false, [unwrapKey, wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-ctr}, true, [unwrapKey, wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-ctr}, false, [unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-ctr}, true, [unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-ctr}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-ctr}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-ctr}, false, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-ctr}, true, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-ctr}, false, [decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-ctr}, true, [decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-ctr}, false, [wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-ctr}, true, [wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-ctr}, false, [unwrapKey, wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-ctr}, true, [unwrapKey, wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-ctr}, false, [unwrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-ctr}, true, [unwrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-ctr}, false, [wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-ctr}, true, [wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-ctr}, false, [unwrapKey, wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-ctr}, true, [unwrapKey, wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-ctr}, false, [unwrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-ctr}, true, [unwrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-ctr}, false, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-ctr}, true, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-ctr}, false, [wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-ctr}, true, [wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-ctr}, false, [unwrapKey, wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-ctr}, true, [unwrapKey, wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-ctr}, false, [unwrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-ctr}, true, [unwrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-ctr}, false, [wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-ctr}, true, [wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-ctr}, false, [unwrapKey, wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-ctr}, true, [unwrapKey, wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-ctr}, false, [unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-ctr}, true, [unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-ctr}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-ctr}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-ctr}, false, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-ctr}, true, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-ctr}, false, [decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-ctr}, true, [decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-ctr}, false, [wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-ctr}, true, [wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-ctr}, false, [unwrapKey, wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-ctr}, true, [unwrapKey, wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-ctr}, false, [unwrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-ctr}, true, [unwrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-ctr}, false, [wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-ctr}, true, [wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-ctr}, false, [unwrapKey, wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-ctr}, true, [unwrapKey, wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-ctr}, false, [unwrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-ctr}, true, [unwrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-ctr}, false, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-ctr}, true, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-ctr}, false, [wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-ctr}, true, [wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-ctr}, false, [unwrapKey, wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-ctr}, true, [unwrapKey, wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-ctr}, false, [unwrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-ctr}, true, [unwrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-ctr}, false, [wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-ctr}, true, [wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-ctr}, false, [unwrapKey, wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-ctr}, true, [unwrapKey, wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-ctr}, false, [unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-ctr}, true, [unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-ctr}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-ctr}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-ctr}, false, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-ctr}, true, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-ctr}, false, [decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-ctr}, true, [decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-ctr}, false, [wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-ctr}, true, [wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-ctr}, false, [unwrapKey, wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-ctr}, true, [unwrapKey, wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-ctr}, false, [unwrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-ctr}, true, [unwrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-ctr}, false, [wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-ctr}, true, [wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-ctr}, false, [unwrapKey, wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-ctr}, true, [unwrapKey, wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-ctr}, false, [unwrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-ctr}, true, [unwrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-ctr}, false, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-ctr}, true, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-ctr}, false, [wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-ctr}, true, [wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-ctr}, false, [unwrapKey, wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-ctr}, true, [unwrapKey, wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-ctr}, false, [unwrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-ctr}, true, [unwrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-ctr}, false, [wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-ctr}, true, [wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-ctr}, false, [unwrapKey, wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-ctr}, true, [unwrapKey, wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-ctr}, false, [unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-ctr}, true, [unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-ctr}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-ctr}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cWebCryptoAPIgenerateKeytest_successes_AESCTRhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_successes_AES-CTR.html (207808 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_successes_AES-CTR.html        2016-10-25 05:26:35 UTC (rev 207808)
+++ trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_successes_AES-CTR.html        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -7,7 +7,7 @@
</span><span class="cx"> &lt;script src=&quot;../../../../resources/testharness.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> 
</span><del>-&lt;script src=&quot;/WebCryptoAPI/util/helpers.js&quot;&gt;&lt;/script&gt;
</del><ins>+&lt;script src=&quot;../util/helpers.js&quot;&gt;&lt;/script&gt;
</ins><span class="cx"> &lt;script src=&quot;successes.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> 
</span><span class="cx"> &lt;h1&gt;generateKey Tests for Good Parameters&lt;/h1&gt;
</span><span class="lines">@@ -20,4 +20,4 @@
</span><span class="cx"> &lt;div id=&quot;log&quot;&gt;&lt;/div&gt;
</span><span class="cx"> &lt;script&gt;
</span><span class="cx"> run_test([&quot;AES-CTR&quot;]);
</span><del>-&lt;/script&gt;
</del><span class="cx">\ No newline at end of file
</span><ins>+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cWebCryptoAPIgenerateKeytest_successes_AESGCMexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_successes_AES-GCM-expected.txt (207808 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_successes_AES-GCM-expected.txt        2016-10-25 05:26:35 UTC (rev 207808)
+++ trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_successes_AES-GCM-expected.txt        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -1,3 +1,294 @@
</span><del>-CONSOLE MESSAGE: line 20: ReferenceError: Can't find variable: CryptoKey
-FAIL: Timed out waiting for notifyDone to be called
</del><ins>+generateKey Tests for Good Parameters
</ins><span class="cx"> 
</span><ins>+Warning! RSA key generation is intrinsically very slow, so the related tests can take up to several minutes to complete, depending on browser!
+
+
+FAIL Success: generateKey({length: 128, name: AES-GCM}, false, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-GCM}, true, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-GCM}, false, [decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-GCM}, true, [decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-GCM}, false, [wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-GCM}, false, [unwrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-GCM}, false, [wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-GCM}, false, [unwrapKey, wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-GCM}, false, [unwrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-GCM}, false, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-GCM}, true, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-GCM}, false, [wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-GCM}, false, [unwrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-GCM}, false, [wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-GCM}, true, [wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-GCM}, false, [unwrapKey, wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-GCM}, false, [unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-GCM}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-GCM}, false, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-GCM}, true, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-GCM}, false, [decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-GCM}, true, [decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-GCM}, false, [wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-GCM}, false, [unwrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-GCM}, false, [wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-GCM}, false, [unwrapKey, wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-GCM}, false, [unwrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-GCM}, false, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-GCM}, true, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-GCM}, false, [wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-GCM}, false, [unwrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-GCM}, false, [wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-GCM}, true, [wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-GCM}, false, [unwrapKey, wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-GCM}, false, [unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-GCM}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-GCM}, false, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-GCM}, true, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-GCM}, false, [decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-GCM}, true, [decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-GCM}, false, [wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-GCM}, false, [unwrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-GCM}, false, [wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-GCM}, false, [unwrapKey, wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-GCM}, false, [unwrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-GCM}, false, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-GCM}, true, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-GCM}, false, [wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-GCM}, false, [unwrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-GCM}, false, [wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-GCM}, true, [wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-GCM}, false, [unwrapKey, wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-GCM}, false, [unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-GCM}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-gcm}, false, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-gcm}, true, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-gcm}, false, [decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-gcm}, true, [decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-gcm}, false, [wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-gcm}, true, [wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-gcm}, false, [unwrapKey, wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-gcm}, true, [unwrapKey, wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-gcm}, false, [unwrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-gcm}, true, [unwrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-gcm}, false, [wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-gcm}, true, [wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-gcm}, false, [unwrapKey, wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-gcm}, true, [unwrapKey, wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-gcm}, false, [unwrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-gcm}, true, [unwrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-gcm}, false, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-gcm}, true, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-gcm}, false, [wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-gcm}, true, [wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-gcm}, false, [unwrapKey, wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-gcm}, true, [unwrapKey, wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-gcm}, false, [unwrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-gcm}, true, [unwrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-gcm}, false, [wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-gcm}, true, [wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-gcm}, false, [unwrapKey, wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-gcm}, true, [unwrapKey, wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-gcm}, false, [unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-gcm}, true, [unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-gcm}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: aes-gcm}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-gcm}, false, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-gcm}, true, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-gcm}, false, [decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-gcm}, true, [decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-gcm}, false, [wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-gcm}, true, [wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-gcm}, false, [unwrapKey, wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-gcm}, true, [unwrapKey, wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-gcm}, false, [unwrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-gcm}, true, [unwrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-gcm}, false, [wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-gcm}, true, [wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-gcm}, false, [unwrapKey, wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-gcm}, true, [unwrapKey, wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-gcm}, false, [unwrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-gcm}, true, [unwrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-gcm}, false, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-gcm}, true, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-gcm}, false, [wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-gcm}, true, [wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-gcm}, false, [unwrapKey, wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-gcm}, true, [unwrapKey, wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-gcm}, false, [unwrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-gcm}, true, [unwrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-gcm}, false, [wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-gcm}, true, [wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-gcm}, false, [unwrapKey, wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-gcm}, true, [unwrapKey, wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-gcm}, false, [unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-gcm}, true, [unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-gcm}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: aes-gcm}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-gcm}, false, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-gcm}, true, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-gcm}, false, [decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-gcm}, true, [decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-gcm}, false, [wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-gcm}, true, [wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-gcm}, false, [unwrapKey, wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-gcm}, true, [unwrapKey, wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-gcm}, false, [unwrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-gcm}, true, [unwrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-gcm}, false, [wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-gcm}, true, [wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-gcm}, false, [unwrapKey, wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-gcm}, true, [unwrapKey, wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-gcm}, false, [unwrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-gcm}, true, [unwrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-gcm}, false, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-gcm}, true, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-gcm}, false, [wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-gcm}, true, [wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-gcm}, false, [unwrapKey, wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-gcm}, true, [unwrapKey, wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-gcm}, false, [unwrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-gcm}, true, [unwrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-gcm}, false, [wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-gcm}, true, [wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-gcm}, false, [unwrapKey, wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-gcm}, true, [unwrapKey, wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-gcm}, false, [unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-gcm}, true, [unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-gcm}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: aes-gcm}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-gcm}, false, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-gcm}, true, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-gcm}, false, [decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-gcm}, true, [decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-gcm}, false, [wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-gcm}, true, [wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-gcm}, false, [unwrapKey, wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-gcm}, true, [unwrapKey, wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-gcm}, false, [unwrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-gcm}, true, [unwrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-gcm}, false, [wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-gcm}, true, [wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-gcm}, false, [unwrapKey, wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-gcm}, true, [unwrapKey, wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-gcm}, false, [unwrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-gcm}, true, [unwrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-gcm}, false, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-gcm}, true, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-gcm}, false, [wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-gcm}, true, [wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-gcm}, false, [unwrapKey, wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-gcm}, true, [unwrapKey, wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-gcm}, false, [unwrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-gcm}, true, [unwrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-gcm}, false, [wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-gcm}, true, [wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-gcm}, false, [unwrapKey, wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-gcm}, true, [unwrapKey, wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-gcm}, false, [unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-gcm}, true, [unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-gcm}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 128, name: Aes-gcm}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-gcm}, false, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-gcm}, true, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-gcm}, false, [decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-gcm}, true, [decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-gcm}, false, [wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-gcm}, true, [wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-gcm}, false, [unwrapKey, wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-gcm}, true, [unwrapKey, wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-gcm}, false, [unwrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-gcm}, true, [unwrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-gcm}, false, [wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-gcm}, true, [wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-gcm}, false, [unwrapKey, wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-gcm}, true, [unwrapKey, wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-gcm}, false, [unwrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-gcm}, true, [unwrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-gcm}, false, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-gcm}, true, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-gcm}, false, [wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-gcm}, true, [wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-gcm}, false, [unwrapKey, wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-gcm}, true, [unwrapKey, wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-gcm}, false, [unwrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-gcm}, true, [unwrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-gcm}, false, [wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-gcm}, true, [wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-gcm}, false, [unwrapKey, wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-gcm}, true, [unwrapKey, wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-gcm}, false, [unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-gcm}, true, [unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-gcm}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 192, name: Aes-gcm}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-gcm}, false, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-gcm}, true, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-gcm}, false, [decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-gcm}, true, [decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-gcm}, false, [wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-gcm}, true, [wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-gcm}, false, [unwrapKey, wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-gcm}, true, [unwrapKey, wrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-gcm}, false, [unwrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-gcm}, true, [unwrapKey, decrypt, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-gcm}, false, [wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-gcm}, true, [wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-gcm}, false, [unwrapKey, wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-gcm}, true, [unwrapKey, wrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-gcm}, false, [unwrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-gcm}, true, [unwrapKey, encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-gcm}, false, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-gcm}, true, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-gcm}, false, [wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-gcm}, true, [wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-gcm}, false, [unwrapKey, wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-gcm}, true, [unwrapKey, wrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-gcm}, false, [unwrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-gcm}, true, [unwrapKey, decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-gcm}, false, [wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-gcm}, true, [wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-gcm}, false, [unwrapKey, wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-gcm}, true, [unwrapKey, wrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-gcm}, false, [unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-gcm}, true, [unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-gcm}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({length: 256, name: Aes-gcm}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cWebCryptoAPIgenerateKeytest_successes_AESGCMhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_successes_AES-GCM.html (207808 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_successes_AES-GCM.html        2016-10-25 05:26:35 UTC (rev 207808)
+++ trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_successes_AES-GCM.html        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -7,7 +7,7 @@
</span><span class="cx"> &lt;script src=&quot;../../../../resources/testharness.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> 
</span><del>-&lt;script src=&quot;/WebCryptoAPI/util/helpers.js&quot;&gt;&lt;/script&gt;
</del><ins>+&lt;script src=&quot;../util/helpers.js&quot;&gt;&lt;/script&gt;
</ins><span class="cx"> &lt;script src=&quot;successes.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> 
</span><span class="cx"> &lt;h1&gt;generateKey Tests for Good Parameters&lt;/h1&gt;
</span><span class="lines">@@ -20,4 +20,4 @@
</span><span class="cx"> &lt;div id=&quot;log&quot;&gt;&lt;/div&gt;
</span><span class="cx"> &lt;script&gt;
</span><span class="cx"> run_test([&quot;AES-GCM&quot;]);
</span><del>-&lt;/script&gt;
</del><span class="cx">\ No newline at end of file
</span><ins>+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cWebCryptoAPIgenerateKeytest_successes_AESKWexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_successes_AES-KW-expected.txt (207808 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_successes_AES-KW-expected.txt        2016-10-25 05:26:35 UTC (rev 207808)
+++ trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_successes_AES-KW-expected.txt        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -1,3 +1,78 @@
</span><del>-CONSOLE MESSAGE: line 20: ReferenceError: Can't find variable: CryptoKey
-FAIL: Timed out waiting for notifyDone to be called
</del><ins>+generateKey Tests for Good Parameters
</ins><span class="cx"> 
</span><ins>+Warning! RSA key generation is intrinsically very slow, so the related tests can take up to several minutes to complete, depending on browser!
+
+
+PASS Success: generateKey({length: 128, name: AES-KW}, false, [wrapKey]) 
+PASS Success: generateKey({length: 128, name: AES-KW}, true, [wrapKey]) 
+PASS Success: generateKey({length: 128, name: AES-KW}, false, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 128, name: AES-KW}, false, [unwrapKey]) 
+PASS Success: generateKey({length: 128, name: AES-KW}, true, [unwrapKey]) 
+PASS Success: generateKey({length: 128, name: AES-KW}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 128, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 192, name: AES-KW}, false, [wrapKey]) 
+PASS Success: generateKey({length: 192, name: AES-KW}, true, [wrapKey]) 
+PASS Success: generateKey({length: 192, name: AES-KW}, false, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 192, name: AES-KW}, false, [unwrapKey]) 
+PASS Success: generateKey({length: 192, name: AES-KW}, true, [unwrapKey]) 
+PASS Success: generateKey({length: 192, name: AES-KW}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 192, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 256, name: AES-KW}, false, [wrapKey]) 
+PASS Success: generateKey({length: 256, name: AES-KW}, true, [wrapKey]) 
+PASS Success: generateKey({length: 256, name: AES-KW}, false, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 256, name: AES-KW}, false, [unwrapKey]) 
+PASS Success: generateKey({length: 256, name: AES-KW}, true, [unwrapKey]) 
+PASS Success: generateKey({length: 256, name: AES-KW}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 256, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 128, name: aes-kw}, false, [wrapKey]) 
+PASS Success: generateKey({length: 128, name: aes-kw}, true, [wrapKey]) 
+PASS Success: generateKey({length: 128, name: aes-kw}, false, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 128, name: aes-kw}, true, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 128, name: aes-kw}, false, [unwrapKey]) 
+PASS Success: generateKey({length: 128, name: aes-kw}, true, [unwrapKey]) 
+PASS Success: generateKey({length: 128, name: aes-kw}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 128, name: aes-kw}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 192, name: aes-kw}, false, [wrapKey]) 
+PASS Success: generateKey({length: 192, name: aes-kw}, true, [wrapKey]) 
+PASS Success: generateKey({length: 192, name: aes-kw}, false, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 192, name: aes-kw}, true, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 192, name: aes-kw}, false, [unwrapKey]) 
+PASS Success: generateKey({length: 192, name: aes-kw}, true, [unwrapKey]) 
+PASS Success: generateKey({length: 192, name: aes-kw}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 192, name: aes-kw}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 256, name: aes-kw}, false, [wrapKey]) 
+PASS Success: generateKey({length: 256, name: aes-kw}, true, [wrapKey]) 
+PASS Success: generateKey({length: 256, name: aes-kw}, false, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 256, name: aes-kw}, true, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 256, name: aes-kw}, false, [unwrapKey]) 
+PASS Success: generateKey({length: 256, name: aes-kw}, true, [unwrapKey]) 
+PASS Success: generateKey({length: 256, name: aes-kw}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 256, name: aes-kw}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 128, name: Aes-kw}, false, [wrapKey]) 
+PASS Success: generateKey({length: 128, name: Aes-kw}, true, [wrapKey]) 
+PASS Success: generateKey({length: 128, name: Aes-kw}, false, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 128, name: Aes-kw}, true, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 128, name: Aes-kw}, false, [unwrapKey]) 
+PASS Success: generateKey({length: 128, name: Aes-kw}, true, [unwrapKey]) 
+PASS Success: generateKey({length: 128, name: Aes-kw}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 128, name: Aes-kw}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 192, name: Aes-kw}, false, [wrapKey]) 
+PASS Success: generateKey({length: 192, name: Aes-kw}, true, [wrapKey]) 
+PASS Success: generateKey({length: 192, name: Aes-kw}, false, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 192, name: Aes-kw}, true, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 192, name: Aes-kw}, false, [unwrapKey]) 
+PASS Success: generateKey({length: 192, name: Aes-kw}, true, [unwrapKey]) 
+PASS Success: generateKey({length: 192, name: Aes-kw}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 192, name: Aes-kw}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 256, name: Aes-kw}, false, [wrapKey]) 
+PASS Success: generateKey({length: 256, name: Aes-kw}, true, [wrapKey]) 
+PASS Success: generateKey({length: 256, name: Aes-kw}, false, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 256, name: Aes-kw}, true, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 256, name: Aes-kw}, false, [unwrapKey]) 
+PASS Success: generateKey({length: 256, name: Aes-kw}, true, [unwrapKey]) 
+PASS Success: generateKey({length: 256, name: Aes-kw}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 256, name: Aes-kw}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) 
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cWebCryptoAPIgenerateKeytest_successes_AESKWhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_successes_AES-KW.html (207808 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_successes_AES-KW.html        2016-10-25 05:26:35 UTC (rev 207808)
+++ trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_successes_AES-KW.html        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -7,7 +7,7 @@
</span><span class="cx"> &lt;script src=&quot;../../../../resources/testharness.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> 
</span><del>-&lt;script src=&quot;/WebCryptoAPI/util/helpers.js&quot;&gt;&lt;/script&gt;
</del><ins>+&lt;script src=&quot;../util/helpers.js&quot;&gt;&lt;/script&gt;
</ins><span class="cx"> &lt;script src=&quot;successes.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> 
</span><span class="cx"> &lt;h1&gt;generateKey Tests for Good Parameters&lt;/h1&gt;
</span><span class="lines">@@ -20,4 +20,4 @@
</span><span class="cx"> &lt;div id=&quot;log&quot;&gt;&lt;/div&gt;
</span><span class="cx"> &lt;script&gt;
</span><span class="cx"> run_test([&quot;AES-KW&quot;]);
</span><del>-&lt;/script&gt;
</del><span class="cx">\ No newline at end of file
</span><ins>+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cWebCryptoAPIgenerateKeytest_successes_ECDHexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_successes_ECDH-expected.txt (207808 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_successes_ECDH-expected.txt        2016-10-25 05:26:35 UTC (rev 207808)
+++ trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_successes_ECDH-expected.txt        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -1,3 +1,78 @@
</span><del>-CONSOLE MESSAGE: line 20: ReferenceError: Can't find variable: CryptoKey
-FAIL: Timed out waiting for notifyDone to be called
</del><ins>+generateKey Tests for Good Parameters
</ins><span class="cx"> 
</span><ins>+Warning! RSA key generation is intrinsically very slow, so the related tests can take up to several minutes to complete, depending on browser!
+
+
+FAIL Success: generateKey({name: ECDH, namedCurve: P-256}, false, [deriveKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ECDH, namedCurve: P-256}, false, [deriveBits, deriveKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits, deriveKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ECDH, namedCurve: P-256}, false, [deriveBits]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveBits]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ECDH, namedCurve: P-256}, false, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ECDH, namedCurve: P-256}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ECDH, namedCurve: P-384}, false, [deriveKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ECDH, namedCurve: P-384}, false, [deriveBits, deriveKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits, deriveKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ECDH, namedCurve: P-384}, false, [deriveBits]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveBits]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ECDH, namedCurve: P-384}, false, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ECDH, namedCurve: P-384}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ECDH, namedCurve: P-521}, false, [deriveKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ECDH, namedCurve: P-521}, false, [deriveBits, deriveKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits, deriveKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ECDH, namedCurve: P-521}, false, [deriveBits]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveBits]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ECDH, namedCurve: P-521}, false, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ECDH, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ecdh, namedCurve: P-256}, false, [deriveKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ecdh, namedCurve: P-256}, true, [deriveKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ecdh, namedCurve: P-256}, false, [deriveBits, deriveKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ecdh, namedCurve: P-256}, true, [deriveBits, deriveKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ecdh, namedCurve: P-256}, false, [deriveBits]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ecdh, namedCurve: P-256}, true, [deriveBits]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ecdh, namedCurve: P-256}, false, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ecdh, namedCurve: P-256}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ecdh, namedCurve: P-384}, false, [deriveKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ecdh, namedCurve: P-384}, true, [deriveKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ecdh, namedCurve: P-384}, false, [deriveBits, deriveKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ecdh, namedCurve: P-384}, true, [deriveBits, deriveKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ecdh, namedCurve: P-384}, false, [deriveBits]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ecdh, namedCurve: P-384}, true, [deriveBits]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ecdh, namedCurve: P-384}, false, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ecdh, namedCurve: P-384}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ecdh, namedCurve: P-521}, false, [deriveKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ecdh, namedCurve: P-521}, true, [deriveKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ecdh, namedCurve: P-521}, false, [deriveBits, deriveKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ecdh, namedCurve: P-521}, true, [deriveBits, deriveKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ecdh, namedCurve: P-521}, false, [deriveBits]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ecdh, namedCurve: P-521}, true, [deriveBits]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ecdh, namedCurve: P-521}, false, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ecdh, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: Ecdh, namedCurve: P-256}, false, [deriveKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: Ecdh, namedCurve: P-256}, true, [deriveKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: Ecdh, namedCurve: P-256}, false, [deriveBits, deriveKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: Ecdh, namedCurve: P-256}, true, [deriveBits, deriveKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: Ecdh, namedCurve: P-256}, false, [deriveBits]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: Ecdh, namedCurve: P-256}, true, [deriveBits]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: Ecdh, namedCurve: P-256}, false, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: Ecdh, namedCurve: P-256}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: Ecdh, namedCurve: P-384}, false, [deriveKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: Ecdh, namedCurve: P-384}, true, [deriveKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: Ecdh, namedCurve: P-384}, false, [deriveBits, deriveKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: Ecdh, namedCurve: P-384}, true, [deriveBits, deriveKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: Ecdh, namedCurve: P-384}, false, [deriveBits]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: Ecdh, namedCurve: P-384}, true, [deriveBits]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: Ecdh, namedCurve: P-384}, false, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: Ecdh, namedCurve: P-384}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: Ecdh, namedCurve: P-521}, false, [deriveKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: Ecdh, namedCurve: P-521}, true, [deriveKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: Ecdh, namedCurve: P-521}, false, [deriveBits, deriveKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: Ecdh, namedCurve: P-521}, true, [deriveBits, deriveKey]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: Ecdh, namedCurve: P-521}, false, [deriveBits]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: Ecdh, namedCurve: P-521}, true, [deriveBits]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: Ecdh, namedCurve: P-521}, false, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: Ecdh, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cWebCryptoAPIgenerateKeytest_successes_ECDHhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_successes_ECDH.html (207808 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_successes_ECDH.html        2016-10-25 05:26:35 UTC (rev 207808)
+++ trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_successes_ECDH.html        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -7,7 +7,7 @@
</span><span class="cx"> &lt;script src=&quot;../../../../resources/testharness.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> 
</span><del>-&lt;script src=&quot;/WebCryptoAPI/util/helpers.js&quot;&gt;&lt;/script&gt;
</del><ins>+&lt;script src=&quot;../util/helpers.js&quot;&gt;&lt;/script&gt;
</ins><span class="cx"> &lt;script src=&quot;successes.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> 
</span><span class="cx"> &lt;h1&gt;generateKey Tests for Good Parameters&lt;/h1&gt;
</span><span class="lines">@@ -20,4 +20,4 @@
</span><span class="cx"> &lt;div id=&quot;log&quot;&gt;&lt;/div&gt;
</span><span class="cx"> &lt;script&gt;
</span><span class="cx"> run_test([&quot;ECDH&quot;]);
</span><del>-&lt;/script&gt;
</del><span class="cx">\ No newline at end of file
</span><ins>+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cWebCryptoAPIgenerateKeytest_successes_ECDSAexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_successes_ECDSA-expected.txt (207808 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_successes_ECDSA-expected.txt        2016-10-25 05:26:35 UTC (rev 207808)
+++ trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_successes_ECDSA-expected.txt        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -1,3 +1,60 @@
</span><del>-CONSOLE MESSAGE: line 20: ReferenceError: Can't find variable: CryptoKey
-FAIL: Timed out waiting for notifyDone to be called
</del><ins>+generateKey Tests for Good Parameters
</ins><span class="cx"> 
</span><ins>+Warning! RSA key generation is intrinsically very slow, so the related tests can take up to several minutes to complete, depending on browser!
+
+
+FAIL Success: generateKey({name: ECDSA, namedCurve: P-256}, false, [sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ECDSA, namedCurve: P-256}, false, [verify, sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ECDSA, namedCurve: P-256}, true, [verify, sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ECDSA, namedCurve: P-256}, false, [sign, verify, sign, sign, verify]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ECDSA, namedCurve: P-256}, true, [sign, verify, sign, sign, verify]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ECDSA, namedCurve: P-384}, false, [sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ECDSA, namedCurve: P-384}, false, [verify, sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ECDSA, namedCurve: P-384}, true, [verify, sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ECDSA, namedCurve: P-384}, false, [sign, verify, sign, sign, verify]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ECDSA, namedCurve: P-384}, true, [sign, verify, sign, sign, verify]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ECDSA, namedCurve: P-521}, false, [sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ECDSA, namedCurve: P-521}, false, [verify, sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ECDSA, namedCurve: P-521}, true, [verify, sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ECDSA, namedCurve: P-521}, false, [sign, verify, sign, sign, verify]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ECDSA, namedCurve: P-521}, true, [sign, verify, sign, sign, verify]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ecdsa, namedCurve: P-256}, false, [sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ecdsa, namedCurve: P-256}, true, [sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ecdsa, namedCurve: P-256}, false, [verify, sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ecdsa, namedCurve: P-256}, true, [verify, sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ecdsa, namedCurve: P-256}, false, [sign, verify, sign, sign, verify]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ecdsa, namedCurve: P-256}, true, [sign, verify, sign, sign, verify]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ecdsa, namedCurve: P-384}, false, [sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ecdsa, namedCurve: P-384}, true, [sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ecdsa, namedCurve: P-384}, false, [verify, sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ecdsa, namedCurve: P-384}, true, [verify, sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ecdsa, namedCurve: P-384}, false, [sign, verify, sign, sign, verify]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ecdsa, namedCurve: P-384}, true, [sign, verify, sign, sign, verify]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ecdsa, namedCurve: P-521}, false, [sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ecdsa, namedCurve: P-521}, true, [sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ecdsa, namedCurve: P-521}, false, [verify, sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ecdsa, namedCurve: P-521}, true, [verify, sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ecdsa, namedCurve: P-521}, false, [sign, verify, sign, sign, verify]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: ecdsa, namedCurve: P-521}, true, [sign, verify, sign, sign, verify]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: Ecdsa, namedCurve: P-256}, false, [sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: Ecdsa, namedCurve: P-256}, true, [sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: Ecdsa, namedCurve: P-256}, false, [verify, sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: Ecdsa, namedCurve: P-256}, true, [verify, sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: Ecdsa, namedCurve: P-256}, false, [sign, verify, sign, sign, verify]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: Ecdsa, namedCurve: P-256}, true, [sign, verify, sign, sign, verify]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: Ecdsa, namedCurve: P-384}, false, [sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: Ecdsa, namedCurve: P-384}, true, [sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: Ecdsa, namedCurve: P-384}, false, [verify, sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: Ecdsa, namedCurve: P-384}, true, [verify, sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: Ecdsa, namedCurve: P-384}, false, [sign, verify, sign, sign, verify]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: Ecdsa, namedCurve: P-384}, true, [sign, verify, sign, sign, verify]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: Ecdsa, namedCurve: P-521}, false, [sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: Ecdsa, namedCurve: P-521}, true, [sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: Ecdsa, namedCurve: P-521}, false, [verify, sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: Ecdsa, namedCurve: P-521}, true, [verify, sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: Ecdsa, namedCurve: P-521}, false, [sign, verify, sign, sign, verify]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({name: Ecdsa, namedCurve: P-521}, true, [sign, verify, sign, sign, verify]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cWebCryptoAPIgenerateKeytest_successes_ECDSAhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_successes_ECDSA.html (207808 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_successes_ECDSA.html        2016-10-25 05:26:35 UTC (rev 207808)
+++ trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_successes_ECDSA.html        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -7,7 +7,7 @@
</span><span class="cx"> &lt;script src=&quot;../../../../resources/testharness.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> 
</span><del>-&lt;script src=&quot;/WebCryptoAPI/util/helpers.js&quot;&gt;&lt;/script&gt;
</del><ins>+&lt;script src=&quot;../util/helpers.js&quot;&gt;&lt;/script&gt;
</ins><span class="cx"> &lt;script src=&quot;successes.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> 
</span><span class="cx"> &lt;h1&gt;generateKey Tests for Good Parameters&lt;/h1&gt;
</span><span class="lines">@@ -20,4 +20,4 @@
</span><span class="cx"> &lt;div id=&quot;log&quot;&gt;&lt;/div&gt;
</span><span class="cx"> &lt;script&gt;
</span><span class="cx"> run_test([&quot;ECDSA&quot;]);
</span><del>-&lt;/script&gt;
</del><span class="cx">\ No newline at end of file
</span><ins>+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cWebCryptoAPIgenerateKeytest_successes_HMACexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_successes_HMAC-expected.txt (207808 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_successes_HMAC-expected.txt        2016-10-25 05:26:35 UTC (rev 207808)
+++ trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_successes_HMAC-expected.txt        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -1,3 +1,102 @@
</span><del>-CONSOLE MESSAGE: line 20: ReferenceError: Can't find variable: CryptoKey
-FAIL: Timed out waiting for notifyDone to be called
</del><ins>+generateKey Tests for Good Parameters
</ins><span class="cx"> 
</span><ins>+Warning! RSA key generation is intrinsically very slow, so the related tests can take up to several minutes to complete, depending on browser!
+
+
+PASS Success: generateKey({hash: SHA-1, length: 160, name: HMAC}, false, [sign]) 
+PASS Success: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign]) 
+PASS Success: generateKey({hash: SHA-1, length: 160, name: HMAC}, false, [verify, sign]) 
+PASS Success: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, sign]) 
+PASS Success: generateKey({hash: SHA-1, length: 160, name: HMAC}, false, [verify]) 
+PASS Success: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify]) 
+PASS Success: generateKey({hash: SHA-1, length: 160, name: HMAC}, false, [sign, verify, sign, verify]) 
+PASS Success: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, verify, sign, verify]) 
+PASS Success: generateKey({hash: SHA-256, length: 256, name: HMAC}, false, [sign]) 
+PASS Success: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign]) 
+PASS Success: generateKey({hash: SHA-256, length: 256, name: HMAC}, false, [verify, sign]) 
+PASS Success: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, sign]) 
+PASS Success: generateKey({hash: SHA-256, length: 256, name: HMAC}, false, [verify]) 
+PASS Success: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify]) 
+PASS Success: generateKey({hash: SHA-256, length: 256, name: HMAC}, false, [sign, verify, sign, verify]) 
+PASS Success: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, verify, sign, verify]) 
+PASS Success: generateKey({hash: SHA-384, length: 384, name: HMAC}, false, [sign]) 
+PASS Success: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign]) 
+PASS Success: generateKey({hash: SHA-384, length: 384, name: HMAC}, false, [verify, sign]) 
+PASS Success: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, sign]) 
+PASS Success: generateKey({hash: SHA-384, length: 384, name: HMAC}, false, [verify]) 
+PASS Success: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify]) 
+PASS Success: generateKey({hash: SHA-384, length: 384, name: HMAC}, false, [sign, verify, sign, verify]) 
+PASS Success: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, verify, sign, verify]) 
+PASS Success: generateKey({hash: SHA-512, length: 512, name: HMAC}, false, [sign]) 
+PASS Success: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign]) 
+PASS Success: generateKey({hash: SHA-512, length: 512, name: HMAC}, false, [verify, sign]) 
+PASS Success: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, sign]) 
+PASS Success: generateKey({hash: SHA-512, length: 512, name: HMAC}, false, [verify]) 
+PASS Success: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify]) 
+PASS Success: generateKey({hash: SHA-512, length: 512, name: HMAC}, false, [sign, verify, sign, verify]) 
+PASS Success: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, verify, sign, verify]) 
+PASS Success: generateKey({hash: SHA-1, length: 160, name: hmac}, false, [sign]) 
+PASS Success: generateKey({hash: SHA-1, length: 160, name: hmac}, true, [sign]) 
+PASS Success: generateKey({hash: SHA-1, length: 160, name: hmac}, false, [verify, sign]) 
+PASS Success: generateKey({hash: SHA-1, length: 160, name: hmac}, true, [verify, sign]) 
+PASS Success: generateKey({hash: SHA-1, length: 160, name: hmac}, false, [verify]) 
+PASS Success: generateKey({hash: SHA-1, length: 160, name: hmac}, true, [verify]) 
+PASS Success: generateKey({hash: SHA-1, length: 160, name: hmac}, false, [sign, verify, sign, verify]) 
+PASS Success: generateKey({hash: SHA-1, length: 160, name: hmac}, true, [sign, verify, sign, verify]) 
+PASS Success: generateKey({hash: SHA-256, length: 256, name: hmac}, false, [sign]) 
+PASS Success: generateKey({hash: SHA-256, length: 256, name: hmac}, true, [sign]) 
+PASS Success: generateKey({hash: SHA-256, length: 256, name: hmac}, false, [verify, sign]) 
+PASS Success: generateKey({hash: SHA-256, length: 256, name: hmac}, true, [verify, sign]) 
+PASS Success: generateKey({hash: SHA-256, length: 256, name: hmac}, false, [verify]) 
+PASS Success: generateKey({hash: SHA-256, length: 256, name: hmac}, true, [verify]) 
+PASS Success: generateKey({hash: SHA-256, length: 256, name: hmac}, false, [sign, verify, sign, verify]) 
+PASS Success: generateKey({hash: SHA-256, length: 256, name: hmac}, true, [sign, verify, sign, verify]) 
+PASS Success: generateKey({hash: SHA-384, length: 384, name: hmac}, false, [sign]) 
+PASS Success: generateKey({hash: SHA-384, length: 384, name: hmac}, true, [sign]) 
+PASS Success: generateKey({hash: SHA-384, length: 384, name: hmac}, false, [verify, sign]) 
+PASS Success: generateKey({hash: SHA-384, length: 384, name: hmac}, true, [verify, sign]) 
+PASS Success: generateKey({hash: SHA-384, length: 384, name: hmac}, false, [verify]) 
+PASS Success: generateKey({hash: SHA-384, length: 384, name: hmac}, true, [verify]) 
+PASS Success: generateKey({hash: SHA-384, length: 384, name: hmac}, false, [sign, verify, sign, verify]) 
+PASS Success: generateKey({hash: SHA-384, length: 384, name: hmac}, true, [sign, verify, sign, verify]) 
+PASS Success: generateKey({hash: SHA-512, length: 512, name: hmac}, false, [sign]) 
+PASS Success: generateKey({hash: SHA-512, length: 512, name: hmac}, true, [sign]) 
+PASS Success: generateKey({hash: SHA-512, length: 512, name: hmac}, false, [verify, sign]) 
+PASS Success: generateKey({hash: SHA-512, length: 512, name: hmac}, true, [verify, sign]) 
+PASS Success: generateKey({hash: SHA-512, length: 512, name: hmac}, false, [verify]) 
+PASS Success: generateKey({hash: SHA-512, length: 512, name: hmac}, true, [verify]) 
+PASS Success: generateKey({hash: SHA-512, length: 512, name: hmac}, false, [sign, verify, sign, verify]) 
+PASS Success: generateKey({hash: SHA-512, length: 512, name: hmac}, true, [sign, verify, sign, verify]) 
+PASS Success: generateKey({hash: SHA-1, length: 160, name: Hmac}, false, [sign]) 
+PASS Success: generateKey({hash: SHA-1, length: 160, name: Hmac}, true, [sign]) 
+PASS Success: generateKey({hash: SHA-1, length: 160, name: Hmac}, false, [verify, sign]) 
+PASS Success: generateKey({hash: SHA-1, length: 160, name: Hmac}, true, [verify, sign]) 
+PASS Success: generateKey({hash: SHA-1, length: 160, name: Hmac}, false, [verify]) 
+PASS Success: generateKey({hash: SHA-1, length: 160, name: Hmac}, true, [verify]) 
+PASS Success: generateKey({hash: SHA-1, length: 160, name: Hmac}, false, [sign, verify, sign, verify]) 
+PASS Success: generateKey({hash: SHA-1, length: 160, name: Hmac}, true, [sign, verify, sign, verify]) 
+PASS Success: generateKey({hash: SHA-256, length: 256, name: Hmac}, false, [sign]) 
+PASS Success: generateKey({hash: SHA-256, length: 256, name: Hmac}, true, [sign]) 
+PASS Success: generateKey({hash: SHA-256, length: 256, name: Hmac}, false, [verify, sign]) 
+PASS Success: generateKey({hash: SHA-256, length: 256, name: Hmac}, true, [verify, sign]) 
+PASS Success: generateKey({hash: SHA-256, length: 256, name: Hmac}, false, [verify]) 
+PASS Success: generateKey({hash: SHA-256, length: 256, name: Hmac}, true, [verify]) 
+PASS Success: generateKey({hash: SHA-256, length: 256, name: Hmac}, false, [sign, verify, sign, verify]) 
+PASS Success: generateKey({hash: SHA-256, length: 256, name: Hmac}, true, [sign, verify, sign, verify]) 
+PASS Success: generateKey({hash: SHA-384, length: 384, name: Hmac}, false, [sign]) 
+PASS Success: generateKey({hash: SHA-384, length: 384, name: Hmac}, true, [sign]) 
+PASS Success: generateKey({hash: SHA-384, length: 384, name: Hmac}, false, [verify, sign]) 
+PASS Success: generateKey({hash: SHA-384, length: 384, name: Hmac}, true, [verify, sign]) 
+PASS Success: generateKey({hash: SHA-384, length: 384, name: Hmac}, false, [verify]) 
+PASS Success: generateKey({hash: SHA-384, length: 384, name: Hmac}, true, [verify]) 
+PASS Success: generateKey({hash: SHA-384, length: 384, name: Hmac}, false, [sign, verify, sign, verify]) 
+PASS Success: generateKey({hash: SHA-384, length: 384, name: Hmac}, true, [sign, verify, sign, verify]) 
+PASS Success: generateKey({hash: SHA-512, length: 512, name: Hmac}, false, [sign]) 
+PASS Success: generateKey({hash: SHA-512, length: 512, name: Hmac}, true, [sign]) 
+PASS Success: generateKey({hash: SHA-512, length: 512, name: Hmac}, false, [verify, sign]) 
+PASS Success: generateKey({hash: SHA-512, length: 512, name: Hmac}, true, [verify, sign]) 
+PASS Success: generateKey({hash: SHA-512, length: 512, name: Hmac}, false, [verify]) 
+PASS Success: generateKey({hash: SHA-512, length: 512, name: Hmac}, true, [verify]) 
+PASS Success: generateKey({hash: SHA-512, length: 512, name: Hmac}, false, [sign, verify, sign, verify]) 
+PASS Success: generateKey({hash: SHA-512, length: 512, name: Hmac}, true, [sign, verify, sign, verify]) 
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cWebCryptoAPIgenerateKeytest_successes_HMAChtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_successes_HMAC.html (207808 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_successes_HMAC.html        2016-10-25 05:26:35 UTC (rev 207808)
+++ trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_successes_HMAC.html        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -7,7 +7,7 @@
</span><span class="cx"> &lt;script src=&quot;../../../../resources/testharness.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> 
</span><del>-&lt;script src=&quot;/WebCryptoAPI/util/helpers.js&quot;&gt;&lt;/script&gt;
</del><ins>+&lt;script src=&quot;../util/helpers.js&quot;&gt;&lt;/script&gt;
</ins><span class="cx"> &lt;script src=&quot;successes.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> 
</span><span class="cx"> &lt;h1&gt;generateKey Tests for Good Parameters&lt;/h1&gt;
</span><span class="lines">@@ -20,4 +20,4 @@
</span><span class="cx"> &lt;div id=&quot;log&quot;&gt;&lt;/div&gt;
</span><span class="cx"> &lt;script&gt;
</span><span class="cx"> run_test([&quot;HMAC&quot;]);
</span><del>-&lt;/script&gt;
</del><span class="cx">\ No newline at end of file
</span><ins>+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cWebCryptoAPIgenerateKeytest_successes_RSAOAEPexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_successes_RSA-OAEP-expected.txt (207808 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_successes_RSA-OAEP-expected.txt        2016-10-25 05:26:35 UTC (rev 207808)
+++ trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_successes_RSA-OAEP-expected.txt        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -1,3 +1,162 @@
</span><del>-CONSOLE MESSAGE: line 20: ReferenceError: Can't find variable: CryptoKey
-FAIL: Timed out waiting for notifyDone to be called
</del><ins>+generateKey Tests for Good Parameters
</ins><span class="cx"> 
</span><ins>+Warning! RSA key generation is intrinsically very slow, so the related tests can take up to several minutes to complete, depending on browser!
+
+
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, encrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, encrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, encrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, encrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [wrapKey, decrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, decrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, encrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, encrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, encrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, encrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [wrapKey, decrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, decrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-OAEP, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, encrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, encrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, encrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, encrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [wrapKey, decrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, decrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, encrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, encrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, encrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, encrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [wrapKey, decrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, decrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, encrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, encrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, encrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, encrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [wrapKey, decrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, decrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, encrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, encrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, encrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, encrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [wrapKey, decrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [wrapKey, decrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, decrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, decrypt]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [unwrapKey]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [unwrapKey]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-oaep, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [encrypt, decrypt, wrapKey, unwrapKey, decrypt, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cWebCryptoAPIgenerateKeytest_successes_RSAOAEPhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_successes_RSA-OAEP.html (207808 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_successes_RSA-OAEP.html        2016-10-25 05:26:35 UTC (rev 207808)
+++ trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_successes_RSA-OAEP.html        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -7,7 +7,7 @@
</span><span class="cx"> &lt;script src=&quot;../../../../resources/testharness.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> 
</span><del>-&lt;script src=&quot;/WebCryptoAPI/util/helpers.js&quot;&gt;&lt;/script&gt;
</del><ins>+&lt;script src=&quot;../util/helpers.js&quot;&gt;&lt;/script&gt;
</ins><span class="cx"> &lt;script src=&quot;successes.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> 
</span><span class="cx"> &lt;h1&gt;generateKey Tests for Good Parameters&lt;/h1&gt;
</span><span class="lines">@@ -20,4 +20,4 @@
</span><span class="cx"> &lt;div id=&quot;log&quot;&gt;&lt;/div&gt;
</span><span class="cx"> &lt;script&gt;
</span><span class="cx"> run_test([&quot;RSA-OAEP&quot;]);
</span><del>-&lt;/script&gt;
</del><span class="cx">\ No newline at end of file
</span><ins>+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cWebCryptoAPIgenerateKeytest_successes_RSAPSSexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_successes_RSA-PSS-expected.txt (207808 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_successes_RSA-PSS-expected.txt        2016-10-25 05:26:35 UTC (rev 207808)
+++ trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_successes_RSA-PSS-expected.txt        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -1,3 +1,42 @@
</span><del>-CONSOLE MESSAGE: line 20: ReferenceError: Can't find variable: CryptoKey
-FAIL: Timed out waiting for notifyDone to be called
</del><ins>+generateKey Tests for Good Parameters
</ins><span class="cx"> 
</span><ins>+Warning! RSA key generation is intrinsically very slow, so the related tests can take up to several minutes to complete, depending on browser!
+
+
+FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [verify, sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, verify, sign, sign, verify]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [verify, sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, verify, sign, sign, verify]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [verify, sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, verify, sign, sign, verify]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [verify, sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, verify, sign, sign, verify]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [verify, sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, verify, sign, sign, verify]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [verify, sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, verify, sign, sign, verify]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+FAIL Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsa-pss, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cWebCryptoAPIgenerateKeytest_successes_RSAPSShtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_successes_RSA-PSS.html (207808 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_successes_RSA-PSS.html        2016-10-25 05:26:35 UTC (rev 207808)
+++ trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_successes_RSA-PSS.html        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -7,7 +7,7 @@
</span><span class="cx"> &lt;script src=&quot;../../../../resources/testharness.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> 
</span><del>-&lt;script src=&quot;/WebCryptoAPI/util/helpers.js&quot;&gt;&lt;/script&gt;
</del><ins>+&lt;script src=&quot;../util/helpers.js&quot;&gt;&lt;/script&gt;
</ins><span class="cx"> &lt;script src=&quot;successes.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> 
</span><span class="cx"> &lt;h1&gt;generateKey Tests for Good Parameters&lt;/h1&gt;
</span><span class="lines">@@ -20,4 +20,4 @@
</span><span class="cx"> &lt;div id=&quot;log&quot;&gt;&lt;/div&gt;
</span><span class="cx"> &lt;script&gt;
</span><span class="cx"> run_test([&quot;RSA-PSS&quot;]);
</span><del>-&lt;/script&gt;
</del><span class="cx">\ No newline at end of file
</span><ins>+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cWebCryptoAPIgenerateKeytest_successes_RSASSAPKCS1v1_5expectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_successes_RSASSA-PKCS1-v1_5-expected.txt (207808 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_successes_RSASSA-PKCS1-v1_5-expected.txt        2016-10-25 05:26:35 UTC (rev 207808)
+++ trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_successes_RSASSA-PKCS1-v1_5-expected.txt        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -1,3 +1,42 @@
</span><del>-CONSOLE MESSAGE: line 20: ReferenceError: Can't find variable: CryptoKey
-FAIL: Timed out waiting for notifyDone to be called
</del><ins>+generateKey Tests for Good Parameters
</ins><span class="cx"> 
</span><ins>+Warning! RSA key generation is intrinsically very slow, so the related tests can take up to several minutes to complete, depending on browser!
+
+
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-V1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-V1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-V1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [verify, sign]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-V1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-V1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, verify, sign, sign, verify]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: RSASSA-PKCS1-V1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-V1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-V1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-V1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [verify, sign]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-V1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-V1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, verify, sign, sign, verify]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: RSASSA-PKCS1-V1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [verify, sign]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, verify, sign, sign, verify]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [verify, sign]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, verify, sign, sign, verify]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [verify, sign]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, verify, sign, sign, verify]) 
+PASS Success: generateKey({hash: SHA-1, modulusLength: 2048, name: Rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [verify, sign]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [verify, sign]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, verify, sign, sign, verify]) 
+PASS Success: generateKey({hash: SHA-256, modulusLength: 2048, name: Rsassa-pkcs1-v1_5, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, verify, sign, sign, verify]) 
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cWebCryptoAPIgenerateKeytest_successes_RSASSAPKCS1v1_5html"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_successes_RSASSA-PKCS1-v1_5.html (207808 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_successes_RSASSA-PKCS1-v1_5.html        2016-10-25 05:26:35 UTC (rev 207808)
+++ trunk/LayoutTests/imported/w3c/WebCryptoAPI/generateKey/test_successes_RSASSA-PKCS1-v1_5.html        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -7,7 +7,7 @@
</span><span class="cx"> &lt;script src=&quot;../../../../resources/testharness.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../../resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> 
</span><del>-&lt;script src=&quot;/WebCryptoAPI/util/helpers.js&quot;&gt;&lt;/script&gt;
</del><ins>+&lt;script src=&quot;../util/helpers.js&quot;&gt;&lt;/script&gt;
</ins><span class="cx"> &lt;script src=&quot;successes.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> 
</span><span class="cx"> &lt;h1&gt;generateKey Tests for Good Parameters&lt;/h1&gt;
</span><span class="lines">@@ -20,4 +20,4 @@
</span><span class="cx"> &lt;div id=&quot;log&quot;&gt;&lt;/div&gt;
</span><span class="cx"> &lt;script&gt;
</span><span class="cx"> run_test([&quot;RSASSA-PKCS1-v1_5&quot;]);
</span><del>-&lt;/script&gt;
</del><span class="cx">\ No newline at end of file
</span><ins>+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cWebCryptoAPIidlharnessexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/WebCryptoAPI/idlharness-expected.txt (207808 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/WebCryptoAPI/idlharness-expected.txt        2016-10-25 05:26:35 UTC (rev 207808)
+++ trunk/LayoutTests/imported/w3c/WebCryptoAPI/idlharness-expected.txt        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -53,8 +53,8 @@
</span><span class="cx"> FAIL SubtleCrypto interface: calling verify(AlgorithmIdentifier,CryptoKey,BufferSource,BufferSource) on crypto.subtle with too few arguments must throw TypeError assert_inherits: property &quot;verify&quot; not found in prototype chain
</span><span class="cx"> FAIL SubtleCrypto interface: crypto.subtle must inherit property &quot;digest&quot; with the proper type (4) assert_inherits: property &quot;digest&quot; not found in prototype chain
</span><span class="cx"> FAIL SubtleCrypto interface: calling digest(AlgorithmIdentifier,BufferSource) on crypto.subtle with too few arguments must throw TypeError assert_inherits: property &quot;digest&quot; not found in prototype chain
</span><del>-FAIL SubtleCrypto interface: crypto.subtle must inherit property &quot;generateKey&quot; with the proper type (5) assert_inherits: property &quot;generateKey&quot; not found in prototype chain
-FAIL SubtleCrypto interface: calling generateKey(AlgorithmIdentifier,boolean,[object Object]) on crypto.subtle with too few arguments must throw TypeError assert_inherits: property &quot;generateKey&quot; not found in prototype chain
</del><ins>+PASS SubtleCrypto interface: crypto.subtle must inherit property &quot;generateKey&quot; with the proper type (5) 
+PASS SubtleCrypto interface: calling generateKey(AlgorithmIdentifier,boolean,[object Object]) on crypto.subtle with too few arguments must throw TypeError 
</ins><span class="cx"> FAIL SubtleCrypto interface: crypto.subtle must inherit property &quot;deriveKey&quot; with the proper type (6) assert_inherits: property &quot;deriveKey&quot; not found in prototype chain
</span><span class="cx"> FAIL SubtleCrypto interface: calling deriveKey(AlgorithmIdentifier,CryptoKey,AlgorithmIdentifier,boolean,[object Object]) on crypto.subtle with too few arguments must throw TypeError assert_inherits: property &quot;deriveKey&quot; not found in prototype chain
</span><span class="cx"> FAIL SubtleCrypto interface: crypto.subtle must inherit property &quot;deriveBits&quot; with the proper type (7) assert_inherits: property &quot;deriveBits&quot; not found in prototype chain
</span></span></pre></div>
<a id="trunkLayoutTestsresourcesjstestprejs"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/resources/js-test-pre.js (207808 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/resources/js-test-pre.js        2016-10-25 05:26:35 UTC (rev 207808)
+++ trunk/LayoutTests/resources/js-test-pre.js        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -617,6 +617,28 @@
</span><span class="cx">         testFailed((_message ? _message : _a) + &quot; should throw &quot; + (typeof _e == &quot;undefined&quot; ? &quot;an exception&quot; : _ev) + &quot;. Was &quot; + _av + &quot;.&quot;);
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+function shouldReject(_a, _rejectCallback, _resolveCallback, _message)
+{
+    var _exception;
+    var _av;
+    try {
+        _av = typeof _a == &quot;function&quot; ? _a() : eval(_a);
+    } catch (e) {
+        testFailed((_message ? _message : _a) + &quot; should not throw exception. Threw exception &quot; + e + &quot;.&quot;);
+        return Promise.resolve();
+    }
+
+     return _av.then(function(result) {
+        testFailed((_message ? _message : _a) + &quot; should reject promise. Resolved with &quot; + result + &quot;.&quot;);
+        if (typeof _resolveCallback == &quot;function&quot;)
+            _resolveCallback();
+    }, function(error) {
+        testPassed((_message ? _message : _a) + &quot; rejected promise  with &quot; + error + &quot;.&quot;);
+        if (typeof _rejectCallback == &quot;function&quot;)
+            _rejectCallback();
+    });
+}
+
</ins><span class="cx"> function shouldThrowErrorName(_a, _name)
</span><span class="cx"> {
</span><span class="cx">     var _exception;
</span></span></pre></div>
<a id="trunkSourceWebCoreCMakeListstxt"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/CMakeLists.txt (207808 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/CMakeLists.txt        2016-10-25 05:26:35 UTC (rev 207808)
+++ trunk/Source/WebCore/CMakeLists.txt        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -327,11 +327,17 @@
</span><span class="cx">     animation/KeyframeEffect.idl
</span><span class="cx">     animation/WebAnimation.idl
</span><span class="cx"> 
</span><ins>+    crypto/CryptoAlgorithmParameters.idl
</ins><span class="cx">     crypto/CryptoKey.idl
</span><span class="cx">     crypto/CryptoKeyPair.idl
</span><span class="cx">     crypto/SubtleCrypto.idl
</span><span class="cx">     crypto/WebKitSubtleCrypto.idl
</span><span class="cx"> 
</span><ins>+    crypto/parameters/AesKeyGenParams.idl
+    crypto/parameters/HmacKeyGenParams.idl
+    crypto/parameters/RsaHashedKeyGenParams.idl
+    crypto/parameters/RsaKeyGenParams.idl
+
</ins><span class="cx">     css/CSSFontFaceLoadEvent.idl
</span><span class="cx">     css/CSSFontFaceRule.idl
</span><span class="cx">     css/CSSImportRule.idl
</span><span class="lines">@@ -1181,6 +1187,7 @@
</span><span class="cx">     bindings/js/JSStorageCustom.cpp
</span><span class="cx">     bindings/js/JSStyleSheetCustom.cpp
</span><span class="cx">     bindings/js/JSStyleSheetListCustom.cpp
</span><ins>+    bindings/js/JSSubtleCryptoCustom.cpp
</ins><span class="cx">     bindings/js/JSTextCustom.cpp
</span><span class="cx">     bindings/js/JSTextTrackCueCustom.cpp
</span><span class="cx">     bindings/js/JSTextTrackCustom.cpp
</span></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (207808 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2016-10-25 05:26:35 UTC (rev 207808)
+++ trunk/Source/WebCore/ChangeLog        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -1,3 +1,119 @@
</span><ins>+2016-10-24  Jiewen Tan  &lt;jiewen_tan@apple.com&gt;
+
+        Update SubtleCrypto::generateKey to match the latest spec
+        https://bugs.webkit.org/show_bug.cgi?id=163718
+        &lt;rdar://problem/28864380&gt;
+
+        Reviewed by Chris Dumez.
+
+        This patch does following few things:
+        1. It updates the SubtleCrypto::generateKey method to match the latest spec:
+           https://www.w3.org/TR/WebCryptoAPI/#SubtleCrypto-method-generateKey.
+           It also refers to the latest Editor's Draft at a certain degree:
+           https://w3c.github.io/webcrypto/Overview.html#SubtleCrypto-method-generateKey.
+        2. It implements generateKey operations of following algorithms: AES-CBC, AES-KW,
+           HMAC, RSAES-PKCS1-V1_5, RSASSA-PKCS1-V1_5, and RSA-OAEP.
+        3. It replaces SPECIALIZE_TYPE_TRAITS_CRYPTO_ALGORITHM_PARAMETERS with
+        SPECIALIZE_TYPE_TRAITS_CRYPTO_ALGORITHM_PARAMETERS_DEPRECATED for deprecated params.
+        4. It fixes https://bugs.webkit.org/show_bug.cgi?id=129750 as well.
+
+        Tests: crypto/subtle/aes-cbc-generate-key-length-128.html
+               crypto/subtle/aes-cbc-generate-key-length-192.html
+               crypto/subtle/aes-cbc-generate-key-length-256.html
+               crypto/subtle/aes-generate-key-malformed-parameters.html
+               crypto/subtle/aes-kw-generate-key.html
+               crypto/subtle/generate-key-malformed-paramters.html
+               crypto/subtle/hmac-generate-key-customized-length.html
+               crypto/subtle/hmac-generate-key-hash-object.html
+               crypto/subtle/hmac-generate-key-malformed-parameters.html
+               crypto/subtle/hmac-generate-key-sha1.html
+               crypto/subtle/hmac-generate-key-sha224.html
+               crypto/subtle/hmac-generate-key-sha256.html
+               crypto/subtle/hmac-generate-key-sha384.html
+               crypto/subtle/hmac-generate-key-sha512.html
+               crypto/subtle/rsa-generate-key-malformed-parameters.html
+               crypto/subtle/rsa-oaep-generate-key.html
+               crypto/subtle/rsaes-pkcs1-v1_5-generate-key-extractable.html
+               crypto/subtle/rsaes-pkcs1-v1_5-generate-key.html
+               crypto/subtle/rsassa-pkcs1-v1_5-generate-key.html
+               crypto/webkitSubtle/hmac-generate-key.html:
+               crypto/workers/subtle/aes-generate-key.html
+               crypto/workers/subtle/hmac-generate-key.html
+               crypto/workers/subtle/rsa-generate-key.html
+
+        * CMakeLists.txt:
+        * DerivedSources.make:
+        * Modules/encryptedmedia/CDMSessionClearKey.cpp:
+        * WebCore.xcodeproj/project.pbxproj:
+        * bindings/js/JSSubtleCryptoCustom.cpp: Added.
+        (WebCore::toHashIdentifier):
+        (WebCore::normalizeCryptoAlgorithmParameters):
+        (WebCore::cryptoKeyUsagesFromJSValue):
+        (WebCore::createAlgorithm):
+        (WebCore::rejectWithException):
+        (WebCore::jsSubtleCryptoFunctionGenerateKeyPromise):
+        (WebCore::JSSubtleCrypto::generateKey):
+        * bindings/js/JSWebKitSubtleCryptoCustom.cpp:
+        (WebCore::JSWebKitSubtleCrypto::generateKey):
+        * crypto/CryptoAlgorithm.cpp:
+        (WebCore::CryptoAlgorithm::generateKey):
+        * crypto/CryptoAlgorithm.h:
+        * crypto/CryptoAlgorithmParameters.h: Added.
+        (WebCore::CryptoAlgorithmParameters::CryptoAlgorithmParameters):
+        (WebCore::CryptoAlgorithmParameters::~CryptoAlgorithmParameters):
+        (WebCore::CryptoAlgorithmParameters::parametersClass):
+        * crypto/CryptoAlgorithmParameters.idl: Added.
+        * crypto/CryptoAlgorithmParametersDeprecated.h:
+        * crypto/CryptoKey.cpp:
+        (WebCore::CryptoKey::setUsagesBitmap):
+        * crypto/CryptoKey.h:
+        * crypto/CryptoKeyPair.idl:
+        * crypto/SubtleCrypto.idl:
+        * crypto/algorithms/CryptoAlgorithmAES_CBC.cpp:
+        (WebCore::CryptoAlgorithmAES_CBC::generateKey):
+        * crypto/algorithms/CryptoAlgorithmAES_CBC.h:
+        * crypto/algorithms/CryptoAlgorithmAES_KW.cpp:
+        (WebCore::CryptoAlgorithmAES_KW::generateKey):
+        * crypto/algorithms/CryptoAlgorithmAES_KW.h:
+        * crypto/algorithms/CryptoAlgorithmHMAC.cpp:
+        (WebCore::CryptoAlgorithmHMAC::generateKey):
+        * crypto/algorithms/CryptoAlgorithmHMAC.h:
+        * crypto/algorithms/CryptoAlgorithmRSAES_PKCS1_v1_5.cpp:
+        (WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::generateKey):
+        * crypto/algorithms/CryptoAlgorithmRSAES_PKCS1_v1_5.h:
+        * crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.cpp:
+        (WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::generateKey):
+        * crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.h:
+        * crypto/algorithms/CryptoAlgorithmRSA_OAEP.cpp:
+        (WebCore::CryptoAlgorithmRSA_OAEP::generateKey):
+        * crypto/algorithms/CryptoAlgorithmRSA_OAEP.h:
+        * crypto/gnutls/CryptoKeyRSAGnuTLS.cpp:
+        (WebCore::CryptoKeyRSA::generatePair):
+        * crypto/keys/CryptoKeyAES.cpp:
+        (WebCore::CryptoKeyAES::generate):
+        * crypto/keys/CryptoKeyHMAC.cpp:
+        (WebCore::CryptoKeyHMAC::generate):
+        * crypto/keys/CryptoKeyRSA.h:
+        * crypto/mac/CryptoKeyRSAMac.cpp:
+        (WebCore::CryptoKeyRSA::generatePair):
+        * crypto/parameters/AesKeyGenParams.idl: Added.
+        * crypto/parameters/CryptoAlgorithmAesCbcParamsDeprecated.h:
+        * crypto/parameters/CryptoAlgorithmAesKeyGenParams.h: Added.
+        * crypto/parameters/CryptoAlgorithmAesKeyGenParamsDeprecated.h:
+        * crypto/parameters/CryptoAlgorithmHmacKeyGenParams.h: Added.
+        * crypto/parameters/CryptoAlgorithmHmacKeyParamsDeprecated.h:
+        * crypto/parameters/CryptoAlgorithmHmacParamsDeprecated.h:
+        * crypto/parameters/CryptoAlgorithmRsaHashedKeyGenParams.h: Added.
+        * crypto/parameters/CryptoAlgorithmRsaKeyGenParams.h: Added.
+        (WebCore::CryptoAlgorithmRsaKeyGenParams::arrayToVector):
+        * crypto/parameters/CryptoAlgorithmRsaKeyGenParamsDeprecated.h:
+        * crypto/parameters/CryptoAlgorithmRsaKeyParamsWithHashDeprecated.h:
+        * crypto/parameters/CryptoAlgorithmRsaOaepParamsDeprecated.h:
+        * crypto/parameters/CryptoAlgorithmRsaSsaParamsDeprecated.h:
+        * crypto/parameters/HmacKeyGenParams.idl: Added.
+        * crypto/parameters/RsaHashedKeyGenParams.idl: Added.
+        * crypto/parameters/RsaKeyGenParams.idl: Added.
+
</ins><span class="cx"> 2016-10-24  Chris Dumez  &lt;cdumez@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         IDBDatabase.createObjectStore() should take a IDBObjectStoreParameters dictionary in parameter
</span></span></pre></div>
<a id="trunkSourceWebCoreDerivedSourcesmake"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/DerivedSources.make (207808 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/DerivedSources.make        2016-10-25 05:26:35 UTC (rev 207808)
+++ trunk/Source/WebCore/DerivedSources.make        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -52,6 +52,7 @@
</span><span class="cx">     $(WebCore)/bindings/generic \
</span><span class="cx">     $(WebCore)/bindings/js \
</span><span class="cx">     $(WebCore)/crypto \
</span><ins>+    $(WebCore)/crypto/parameters \
</ins><span class="cx">     $(WebCore)/css \
</span><span class="cx">     $(WebCore)/dom \
</span><span class="cx">     $(WebCore)/editing \
</span><span class="lines">@@ -237,8 +238,13 @@
</span><span class="cx">     $(WebCore)/animation/DocumentTimeline.idl \
</span><span class="cx">     $(WebCore)/animation/KeyframeEffect.idl \
</span><span class="cx">     $(WebCore)/animation/WebAnimation.idl \
</span><ins>+    $(WebCore)/crypto/CryptoAlgorithmParameters.idl \
</ins><span class="cx">     $(WebCore)/crypto/CryptoKey.idl \
</span><span class="cx">     $(WebCore)/crypto/CryptoKeyPair.idl \
</span><ins>+    $(WebCore)/crypto/parameters/AesKeyGenParams.idl \
+    $(WebCore)/crypto/parameters/HmacKeyGenParams.idl \
+    $(WebCore)/crypto/parameters/RsaHashedKeyGenParams.idl \
+    $(WebCore)/crypto/parameters/RsaKeyGenParams.idl \
</ins><span class="cx">     $(WebCore)/crypto/SubtleCrypto.idl \
</span><span class="cx">     $(WebCore)/crypto/WebKitSubtleCrypto.idl \
</span><span class="cx">     $(WebCore)/css/CSSFontFaceLoadEvent.idl \
</span><span class="lines">@@ -1210,6 +1216,7 @@
</span><span class="cx">     $(WebCore)/Modules \
</span><span class="cx">     $(WebCore)/animation \
</span><span class="cx">     $(WebCore)/css \
</span><ins>+    $(WebCore)/crypto \
</ins><span class="cx">     $(WebCore)/dom \
</span><span class="cx">     $(WebCore)/fileapi \
</span><span class="cx">     $(WebCore)/html \
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesencryptedmediaCDMSessionClearKeycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/encryptedmedia/CDMSessionClearKey.cpp (207808 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/encryptedmedia/CDMSessionClearKey.cpp        2016-10-25 05:26:35 UTC (rev 207808)
+++ trunk/Source/WebCore/Modules/encryptedmedia/CDMSessionClearKey.cpp        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -27,9 +27,6 @@
</span><span class="cx"> #include &quot;CDMSessionClearKey.h&quot;
</span><span class="cx"> 
</span><span class="cx"> #include &quot;ArrayValue.h&quot;
</span><del>-#include &quot;CryptoAlgorithm.h&quot;
-#include &quot;CryptoAlgorithmIdentifier.h&quot;
-#include &quot;CryptoKeyDataOctetSequence.h&quot;
</del><span class="cx"> #include &quot;Dictionary.h&quot;
</span><span class="cx"> #include &quot;JSMainThreadExecState.h&quot;
</span><span class="cx"> #include &quot;Logging.h&quot;
</span></span></pre></div>
<a id="trunkSourceWebCoreWebCorexcodeprojprojectpbxproj"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj (207808 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj        2016-10-25 05:26:35 UTC (rev 207808)
+++ trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -2318,10 +2318,26 @@
</span><span class="cx">                 571F218B1DA57C7B005C9EFD /* JSSubtleCrypto.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 571F218A1DA57C7A005C9EFD /* JSSubtleCrypto.cpp */; };
</span><span class="cx">                 572A7F211C6E5719009C6149 /* SimulatedClick.h in Headers */ = {isa = PBXBuildFile; fileRef = 572A7F201C6E5719009C6149 /* SimulatedClick.h */; };
</span><span class="cx">                 572A7F231C6E5A66009C6149 /* SimulatedClick.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 572A7F221C6E5A66009C6149 /* SimulatedClick.cpp */; };
</span><ins>+                573489391DAC6B6E00DC0667 /* CryptoAlgorithmParameters.h in Headers */ = {isa = PBXBuildFile; fileRef = 573489381DAC6B6D00DC0667 /* CryptoAlgorithmParameters.h */; };
+                5739E12F1DAC7F7800E14383 /* JSCryptoAlgorithmParameters.h in Headers */ = {isa = PBXBuildFile; fileRef = 5739E12E1DAC7F7800E14383 /* JSCryptoAlgorithmParameters.h */; };
+                5739E1311DAC7FD100E14383 /* JSCryptoAlgorithmParameters.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5739E1301DAC7FD100E14383 /* JSCryptoAlgorithmParameters.cpp */; };
+                5768E4341DB7524500D0A4F7 /* JSRsaHashedKeyGenParams.h in Headers */ = {isa = PBXBuildFile; fileRef = 5768E4331DB7524500D0A4F7 /* JSRsaHashedKeyGenParams.h */; };
+                5768E4361DB7527400D0A4F7 /* JSRsaHashedKeyGenParams.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5768E4351DB7527300D0A4F7 /* JSRsaHashedKeyGenParams.cpp */; };
+                577483121DADC55D00716EF9 /* CryptoAlgorithmAesKeyGenParams.h in Headers */ = {isa = PBXBuildFile; fileRef = 577483111DADC55D00716EF9 /* CryptoAlgorithmAesKeyGenParams.h */; };
+                577483141DAEC2EB00716EF9 /* JSAesKeyGenParams.h in Headers */ = {isa = PBXBuildFile; fileRef = 577483131DAEC2EA00716EF9 /* JSAesKeyGenParams.h */; };
+                577483161DAEC32300716EF9 /* JSAesKeyGenParams.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 577483151DAEC32200716EF9 /* JSAesKeyGenParams.cpp */; };
+                577483191DB4491F00716EF9 /* CryptoAlgorithmHmacKeyGenParams.h in Headers */ = {isa = PBXBuildFile; fileRef = 577483181DB4491F00716EF9 /* CryptoAlgorithmHmacKeyGenParams.h */; };
+                5774831B1DB459BA00716EF9 /* JSHmacKeyGenParams.h in Headers */ = {isa = PBXBuildFile; fileRef = 5774831A1DB459BA00716EF9 /* JSHmacKeyGenParams.h */; };
+                5774831D1DB459DE00716EF9 /* JSHmacKeyGenParams.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5774831C1DB459DE00716EF9 /* JSHmacKeyGenParams.cpp */; };
</ins><span class="cx">                 5778BD821DA4806C009E3009 /* SubtleCrypto.h in Headers */ = {isa = PBXBuildFile; fileRef = 5778BD811DA4802C009E3009 /* SubtleCrypto.h */; };
</span><span class="cx">                 5778BD841DA4817B009E3009 /* SubtleCrypto.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5778BD831DA4817B009E3009 /* SubtleCrypto.cpp */; };
</span><ins>+                57A9C88E1DA70BF800BC7305 /* JSSubtleCryptoCustom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 57A9C88D1DA70BF800BC7305 /* JSSubtleCryptoCustom.cpp */; };
</ins><span class="cx">                 57EF5E601D20C83900171E60 /* TextCodecReplacement.h in Headers */ = {isa = PBXBuildFile; fileRef = 57EF5E5F1D20C83900171E60 /* TextCodecReplacement.h */; };
</span><span class="cx">                 57EF5E621D20D28700171E60 /* TextCodecReplacement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 57EF5E611D20D28700171E60 /* TextCodecReplacement.cpp */; };
</span><ins>+                57F8273B1DB72D64009D2BF4 /* CryptoAlgorithmRsaHashedKeyGenParams.h in Headers */ = {isa = PBXBuildFile; fileRef = 57F8273A1DB72D64009D2BF4 /* CryptoAlgorithmRsaHashedKeyGenParams.h */; };
+                57FEDD3F1DB6D59200EB96F5 /* CryptoAlgorithmRsaKeyGenParams.h in Headers */ = {isa = PBXBuildFile; fileRef = 57FEDD3E1DB6D59200EB96F5 /* CryptoAlgorithmRsaKeyGenParams.h */; };
+                57FEDD411DB6D73A00EB96F5 /* JSRsaKeyGenParams.h in Headers */ = {isa = PBXBuildFile; fileRef = 57FEDD401DB6D73A00EB96F5 /* JSRsaKeyGenParams.h */; };
+                57FEDD431DB6D76000EB96F5 /* JSRsaKeyGenParams.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 57FEDD421DB6D76000EB96F5 /* JSRsaKeyGenParams.cpp */; };
</ins><span class="cx">                 580371611A66F00A00BAF519 /* ClipRect.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5803715F1A66F00A00BAF519 /* ClipRect.cpp */; };
</span><span class="cx">                 580371621A66F00A00BAF519 /* ClipRect.h in Headers */ = {isa = PBXBuildFile; fileRef = 580371601A66F00A00BAF519 /* ClipRect.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 580371641A66F1D300BAF519 /* LayerFragment.h in Headers */ = {isa = PBXBuildFile; fileRef = 580371631A66F1D300BAF519 /* LayerFragment.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="lines">@@ -9412,12 +9428,33 @@
</span><span class="cx">                 571F218A1DA57C7A005C9EFD /* JSSubtleCrypto.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSSubtleCrypto.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 572A7F201C6E5719009C6149 /* SimulatedClick.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SimulatedClick.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 572A7F221C6E5A66009C6149 /* SimulatedClick.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SimulatedClick.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><ins>+                573489381DAC6B6D00DC0667 /* CryptoAlgorithmParameters.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CryptoAlgorithmParameters.h; sourceTree = &quot;&lt;group&gt;&quot;; };
+                5739E12E1DAC7F7800E14383 /* JSCryptoAlgorithmParameters.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSCryptoAlgorithmParameters.h; sourceTree = &quot;&lt;group&gt;&quot;; };
+                5739E1301DAC7FD100E14383 /* JSCryptoAlgorithmParameters.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSCryptoAlgorithmParameters.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
+                574AC7531DAC367D00E9744C /* CryptoAlgorithmParameters.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = CryptoAlgorithmParameters.idl; sourceTree = &quot;&lt;group&gt;&quot;; };
</ins><span class="cx">                 574D42791D594FF6002CF50E /* GlobalCrypto.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = GlobalCrypto.idl; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><ins>+                5768E4331DB7524500D0A4F7 /* JSRsaHashedKeyGenParams.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = JSRsaHashedKeyGenParams.h; path = JSRsaHashedKeyGenParams.h; sourceTree = &quot;&lt;group&gt;&quot;; };
+                5768E4351DB7527300D0A4F7 /* JSRsaHashedKeyGenParams.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = JSRsaHashedKeyGenParams.cpp; path = JSRsaHashedKeyGenParams.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
+                577483101DADC49900716EF9 /* AesKeyGenParams.idl */ = {isa = PBXFileReference; lastKnownFileType = text; path = AesKeyGenParams.idl; sourceTree = &quot;&lt;group&gt;&quot;; };
+                577483111DADC55D00716EF9 /* CryptoAlgorithmAesKeyGenParams.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CryptoAlgorithmAesKeyGenParams.h; sourceTree = &quot;&lt;group&gt;&quot;; };
+                577483131DAEC2EA00716EF9 /* JSAesKeyGenParams.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSAesKeyGenParams.h; sourceTree = &quot;&lt;group&gt;&quot;; };
+                577483151DAEC32200716EF9 /* JSAesKeyGenParams.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSAesKeyGenParams.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
+                577483171DB1FE8900716EF9 /* HmacKeyGenParams.idl */ = {isa = PBXFileReference; lastKnownFileType = text; path = HmacKeyGenParams.idl; sourceTree = &quot;&lt;group&gt;&quot;; };
+                577483181DB4491F00716EF9 /* CryptoAlgorithmHmacKeyGenParams.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CryptoAlgorithmHmacKeyGenParams.h; sourceTree = &quot;&lt;group&gt;&quot;; };
+                5774831A1DB459BA00716EF9 /* JSHmacKeyGenParams.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSHmacKeyGenParams.h; sourceTree = &quot;&lt;group&gt;&quot;; };
+                5774831C1DB459DE00716EF9 /* JSHmacKeyGenParams.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSHmacKeyGenParams.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</ins><span class="cx">                 5778BD801DA4733E009E3009 /* SubtleCrypto.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = SubtleCrypto.idl; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 5778BD811DA4802C009E3009 /* SubtleCrypto.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SubtleCrypto.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 5778BD831DA4817B009E3009 /* SubtleCrypto.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SubtleCrypto.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><ins>+                57A9C88D1DA70BF800BC7305 /* JSSubtleCryptoCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSSubtleCryptoCustom.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</ins><span class="cx">                 57EF5E5F1D20C83900171E60 /* TextCodecReplacement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TextCodecReplacement.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 57EF5E611D20D28700171E60 /* TextCodecReplacement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TextCodecReplacement.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><ins>+                57F827391DB72C22009D2BF4 /* RsaHashedKeyGenParams.idl */ = {isa = PBXFileReference; lastKnownFileType = text; path = RsaHashedKeyGenParams.idl; sourceTree = &quot;&lt;group&gt;&quot;; };
+                57F8273A1DB72D64009D2BF4 /* CryptoAlgorithmRsaHashedKeyGenParams.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CryptoAlgorithmRsaHashedKeyGenParams.h; sourceTree = &quot;&lt;group&gt;&quot;; };
+                57FEDD3D1DB6D47F00EB96F5 /* RsaKeyGenParams.idl */ = {isa = PBXFileReference; lastKnownFileType = text; path = RsaKeyGenParams.idl; sourceTree = &quot;&lt;group&gt;&quot;; };
+                57FEDD3E1DB6D59200EB96F5 /* CryptoAlgorithmRsaKeyGenParams.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CryptoAlgorithmRsaKeyGenParams.h; sourceTree = &quot;&lt;group&gt;&quot;; };
+                57FEDD401DB6D73A00EB96F5 /* JSRsaKeyGenParams.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSRsaKeyGenParams.h; sourceTree = &quot;&lt;group&gt;&quot;; };
+                57FEDD421DB6D76000EB96F5 /* JSRsaKeyGenParams.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSRsaKeyGenParams.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</ins><span class="cx">                 5803715F1A66F00A00BAF519 /* ClipRect.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ClipRect.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 580371601A66F00A00BAF519 /* ClipRect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ClipRect.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 580371631A66F1D300BAF519 /* LayerFragment.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LayerFragment.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="lines">@@ -21652,6 +21689,7 @@
</span><span class="cx">                                 BC98A27C0C0C9950004BEBF7 /* JSStyleSheetCustom.cpp */,
</span><span class="cx">                                 AD726FEC16D9F4B9003A4E6D /* JSStyleSheetCustom.h */,
</span><span class="cx">                                 A84EBD770CB8C89200079609 /* JSStyleSheetListCustom.cpp */,
</span><ins>+                                57A9C88D1DA70BF800BC7305 /* JSSubtleCryptoCustom.cpp */,
</ins><span class="cx">                                 08E4FE450E2BD41400F4CAE0 /* JSSVGLengthCustom.cpp */,
</span><span class="cx">                                 B2C96D8C0B3AF2B7005E80EC /* JSSVGPathSegCustom.cpp */,
</span><span class="cx">                                 838869EB1CE81E9E00D16A9E /* JSTextCustom.cpp */,
</span><span class="lines">@@ -22514,14 +22552,22 @@
</span><span class="cx">                 E1C657141816015F00256CDD /* parameters */ = {
</span><span class="cx">                         isa = PBXGroup;
</span><span class="cx">                         children = (
</span><ins>+                                577483101DADC49900716EF9 /* AesKeyGenParams.idl */,
</ins><span class="cx">                                 E125F8391824104800D84CD9 /* CryptoAlgorithmAesCbcParamsDeprecated.h */,
</span><ins>+                                577483111DADC55D00716EF9 /* CryptoAlgorithmAesKeyGenParams.h */,
</ins><span class="cx">                                 E19AC3F61824E5D100349426 /* CryptoAlgorithmAesKeyGenParamsDeprecated.h */,
</span><ins>+                                577483181DB4491F00716EF9 /* CryptoAlgorithmHmacKeyGenParams.h */,
</ins><span class="cx">                                 E19DA29B18189ADD00088BC8 /* CryptoAlgorithmHmacKeyParamsDeprecated.h */,
</span><span class="cx">                                 E1C6571E1816E50300256CDD /* CryptoAlgorithmHmacParamsDeprecated.h */,
</span><ins>+                                57F8273A1DB72D64009D2BF4 /* CryptoAlgorithmRsaHashedKeyGenParams.h */,
+                                57FEDD3E1DB6D59200EB96F5 /* CryptoAlgorithmRsaKeyGenParams.h */,
</ins><span class="cx">                                 E1BD331D182D8F4200C05D9F /* CryptoAlgorithmRsaKeyGenParamsDeprecated.h */,
</span><span class="cx">                                 E1C266DA18319935003F8B33 /* CryptoAlgorithmRsaKeyParamsWithHashDeprecated.h */,
</span><span class="cx">                                 E1FE1376184D1E3300892F13 /* CryptoAlgorithmRsaOaepParamsDeprecated.h */,
</span><span class="cx">                                 E1BD331B182D8EE900C05D9F /* CryptoAlgorithmRsaSsaParamsDeprecated.h */,
</span><ins>+                                577483171DB1FE8900716EF9 /* HmacKeyGenParams.idl */,
+                                57F827391DB72C22009D2BF4 /* RsaHashedKeyGenParams.idl */,
+                                57FEDD3D1DB6D47F00EB96F5 /* RsaKeyGenParams.idl */,
</ins><span class="cx">                         );
</span><span class="cx">                         path = parameters;
</span><span class="cx">                         sourceTree = &quot;&lt;group&gt;&quot;;
</span><span class="lines">@@ -22642,6 +22688,8 @@
</span><span class="cx">                                 E172AF6B180F24C600FBADB9 /* CryptoAlgorithm.cpp */,
</span><span class="cx">                                 E172AF6C180F24C600FBADB9 /* CryptoAlgorithm.h */,
</span><span class="cx">                                 E1C657241816E69D00256CDD /* CryptoAlgorithmIdentifier.h */,
</span><ins>+                                573489381DAC6B6D00DC0667 /* CryptoAlgorithmParameters.h */,
+                                574AC7531DAC367D00E9744C /* CryptoAlgorithmParameters.idl */,
</ins><span class="cx">                                 E1C657261816F9FE00256CDD /* CryptoAlgorithmParametersDeprecated.h */,
</span><span class="cx">                                 E1FF8F6A180DB5BE00132674 /* CryptoAlgorithmRegistry.cpp */,
</span><span class="cx">                                 E1FF8F6B180DB5BE00132674 /* CryptoAlgorithmRegistry.h */,
</span><span class="lines">@@ -22669,10 +22717,20 @@
</span><span class="cx">                 E1FF8F61180745C600132674 /* Crypto */ = {
</span><span class="cx">                         isa = PBXGroup;
</span><span class="cx">                         children = (
</span><ins>+                                577483151DAEC32200716EF9 /* JSAesKeyGenParams.cpp */,
+                                577483131DAEC2EA00716EF9 /* JSAesKeyGenParams.h */,
+                                5739E1301DAC7FD100E14383 /* JSCryptoAlgorithmParameters.cpp */,
+                                5739E12E1DAC7F7800E14383 /* JSCryptoAlgorithmParameters.h */,
</ins><span class="cx">                                 E157A8DE1817331C009F821D /* JSCryptoKey.cpp */,
</span><span class="cx">                                 E157A8DF1817331C009F821D /* JSCryptoKey.h */,
</span><span class="cx">                                 E1F80B8B183172B5007885C3 /* JSCryptoKeyPair.cpp */,
</span><span class="cx">                                 E1F80B8C183172B5007885C3 /* JSCryptoKeyPair.h */,
</span><ins>+                                5774831C1DB459DE00716EF9 /* JSHmacKeyGenParams.cpp */,
+                                5774831A1DB459BA00716EF9 /* JSHmacKeyGenParams.h */,
+                                5768E4351DB7527300D0A4F7 /* JSRsaHashedKeyGenParams.cpp */,
+                                5768E4331DB7524500D0A4F7 /* JSRsaHashedKeyGenParams.h */,
+                                57FEDD421DB6D76000EB96F5 /* JSRsaKeyGenParams.cpp */,
+                                57FEDD401DB6D73A00EB96F5 /* JSRsaKeyGenParams.h */,
</ins><span class="cx">                                 571F218A1DA57C7A005C9EFD /* JSSubtleCrypto.cpp */,
</span><span class="cx">                                 571F21881DA57C54005C9EFD /* JSSubtleCrypto.h */,
</span><span class="cx">                                 E1FF8F62180745D800132674 /* JSWebKitSubtleCrypto.cpp */,
</span><span class="lines">@@ -24533,6 +24591,7 @@
</span><span class="cx">                                 26F0C8981A2E724B002794F8 /* ContentExtensionParser.h in Headers */,
</span><span class="cx">                                 26F0C89C1A2EC110002794F8 /* ContentExtensionRule.h in Headers */,
</span><span class="cx">                                 26F0C8A01A2EC3BE002794F8 /* ContentExtensionsBackend.h in Headers */,
</span><ins>+                                577483121DADC55D00716EF9 /* CryptoAlgorithmAesKeyGenParams.h in Headers */,
</ins><span class="cx">                                 262391361A648CEE007251A3 /* ContentExtensionsDebugging.h in Headers */,
</span><span class="cx">                                 51FB67DC1AE6B82F00D06C5A /* ContentExtensionStyleSheet.h in Headers */,
</span><span class="cx">                                 A149786F1ABAF33800CEF7E4 /* ContentFilter.h in Headers */,
</span><span class="lines">@@ -24706,6 +24765,7 @@
</span><span class="cx">                                 BC80C9880CD294EE00A0B7B3 /* CSSTimingFunctionValue.h in Headers */,
</span><span class="cx">                                 946D373A1D6CDFC00077084F /* CSSTokenizer.h in Headers */,
</span><span class="cx">                                 946D373C1D6CDFC00077084F /* CSSTokenizerInputStream.h in Headers */,
</span><ins>+                                57F8273B1DB72D64009D2BF4 /* CryptoAlgorithmRsaHashedKeyGenParams.h in Headers */,
</ins><span class="cx">                                 9AB1F38018E2489A00534743 /* CSSToLengthConversionData.h in Headers */,
</span><span class="cx">                                 A882DA231593848D000115ED /* CSSToStyleMap.h in Headers */,
</span><span class="cx">                                 371F53E90D2704F900ECE0D5 /* CSSUnicodeRangeValue.h in Headers */,
</span><span class="lines">@@ -25628,6 +25688,8 @@
</span><span class="cx">                                 1AE2AE5C0A1D26F200B42B25 /* JSHTMLMenuElement.h in Headers */,
</span><span class="cx">                                 A80E7A180A19C3D6007FB8C5 /* JSHTMLMetaElement.h in Headers */,
</span><span class="cx">                                 A7BBE26711AFB3F20005EA03 /* JSHTMLMeterElement.h in Headers */,
</span><ins>+                                5768E4341DB7524500D0A4F7 /* JSRsaHashedKeyGenParams.h in Headers */,
+                                57FEDD411DB6D73A00EB96F5 /* JSRsaKeyGenParams.h in Headers */,
</ins><span class="cx">                                 1AE2AB2A0A1CE63B00B42B25 /* JSHTMLModElement.h in Headers */,
</span><span class="cx">                                 BC305C7A0C076BB300CD20F0 /* JSHTMLObjectElement.h in Headers */,
</span><span class="cx">                                 1A85B1EB0A1B240500D8C87C /* JSHTMLOListElement.h in Headers */,
</span><span class="lines">@@ -25647,7 +25709,9 @@
</span><span class="cx">                                 9B69D3B91B99100700E3512B /* JSHTMLSlotElement.h in Headers */,
</span><span class="cx">                                 E446143C0CD689CC00FADA75 /* JSHTMLSourceElement.h in Headers */,
</span><span class="cx">                                 9752D38E1413104B003305BD /* JSHTMLSpanElement.h in Headers */,
</span><ins>+                                577483141DAEC2EB00716EF9 /* JSAesKeyGenParams.h in Headers */,
</ins><span class="cx">                                 A80E7B0E0A19D606007FB8C5 /* JSHTMLStyleElement.h in Headers */,
</span><ins>+                                5774831B1DB459BA00716EF9 /* JSHmacKeyGenParams.h in Headers */,
</ins><span class="cx">                                 BCA169A30BFD55B40019CA76 /* JSHTMLTableCaptionElement.h in Headers */,
</span><span class="cx">                                 BC06EDE40BFD6D0D00856E9D /* JSHTMLTableCellElement.h in Headers */,
</span><span class="cx">                                 BC06ED9E0BFD660600856E9D /* JSHTMLTableColElement.h in Headers */,
</span><span class="lines">@@ -25691,6 +25755,7 @@
</span><span class="cx">                                 93D437A31D57B7E200AB85EA /* JSMediaListCustom.h in Headers */,
</span><span class="cx">                                 D3A94A47122DC40F00A37BBC /* JSMediaQueryList.h in Headers */,
</span><span class="cx">                                 7C5343FD17B74B63004232F0 /* JSMediaQueryListListener.h in Headers */,
</span><ins>+                                5739E12F1DAC7F7800E14383 /* JSCryptoAlgorithmParameters.h in Headers */,
</ins><span class="cx">                                 CD9DE17517AAC74C00EA386D /* JSMediaSource.h in Headers */,
</span><span class="cx">                                 07277E4D17D018CC0015534D /* JSMediaStream.h in Headers */,
</span><span class="cx">                                 07277E4F17D018CC0015534D /* JSMediaStreamAudioDestinationNode.h in Headers */,
</span><span class="lines">@@ -25708,6 +25773,7 @@
</span><span class="cx">                                 41F584C7104652CB009CAA64 /* JSMessagePortCustom.h in Headers */,
</span><span class="cx">                                 2D6F3E951C1F85550061DBD4 /* JSMockPageOverlay.h in Headers */,
</span><span class="cx">                                 A86629D109DA2B48009633A5 /* JSMouseEvent.h in Headers */,
</span><ins>+                                57FEDD3F1DB6D59200EB96F5 /* CryptoAlgorithmRsaKeyGenParams.h in Headers */,
</ins><span class="cx">                                 830A36BD1DAC5FAD006D7D09 /* JSMouseEventInit.h in Headers */,
</span><span class="cx">                                 C6F420A316B7164E0052A9F2 /* JSMutationCallback.h in Headers */,
</span><span class="cx">                                 65DF31FC09D1CC60000BE325 /* JSMutationEvent.h in Headers */,
</span><span class="lines">@@ -26396,6 +26462,7 @@
</span><span class="cx">                                 FBDB61A116D6037E00BB3394 /* PageRuleCollector.h in Headers */,
</span><span class="cx">                                 F3820895147D35F90010BC06 /* PageRuntimeAgent.h in Headers */,
</span><span class="cx">                                 A5F36D3B18F758720054C024 /* PageScriptDebugServer.h in Headers */,
</span><ins>+                                577483191DB4491F00716EF9 /* CryptoAlgorithmHmacKeyGenParams.h in Headers */,
</ins><span class="cx">                                 371E65CC13661EDC00BEEDB0 /* PageSerializer.h in Headers */,
</span><span class="cx">                                 A7197F24175689C4007B9442 /* PageThrottler.h in Headers */,
</span><span class="cx">                                 E1284AE110447D4500EAEB52 /* PageTransitionEvent.h in Headers */,
</span><span class="lines">@@ -26937,6 +27004,7 @@
</span><span class="cx">                                 510D4A34103165EE0049EA54 /* SocketStreamError.h in Headers */,
</span><span class="cx">                                 510D4A37103165EE0049EA54 /* SocketStreamHandle.h in Headers */,
</span><span class="cx">                                 510D4A38103165EE0049EA54 /* SocketStreamHandleClient.h in Headers */,
</span><ins>+                                573489391DAC6B6E00DC0667 /* CryptoAlgorithmParameters.h in Headers */,
</ins><span class="cx">                                 51ABAE1E103C1913008C5260 /* SocketStreamHandleImpl.h in Headers */,
</span><span class="cx">                                 0A4844990CA44CB200B7BD48 /* SoftLinking.h in Headers */,
</span><span class="cx">                                 4B3043C70AE0370300A82647 /* Sound.h in Headers */,
</span><span class="lines">@@ -28049,6 +28117,11 @@
</span><span class="cx">                         isa = PBXSourcesBuildPhase;
</span><span class="cx">                         buildActionMask = 2147483647;
</span><span class="cx">                         files = (
</span><ins>+                                5768E4361DB7527400D0A4F7 /* JSRsaHashedKeyGenParams.cpp in Sources */,
+                                57FEDD431DB6D76000EB96F5 /* JSRsaKeyGenParams.cpp in Sources */,
+                                5774831D1DB459DE00716EF9 /* JSHmacKeyGenParams.cpp in Sources */,
+                                577483161DAEC32300716EF9 /* JSAesKeyGenParams.cpp in Sources */,
+                                5739E1311DAC7FD100E14383 /* JSCryptoAlgorithmParameters.cpp in Sources */,
</ins><span class="cx">                                 41E1B1D00FF5986900576B3B /* AbstractWorker.cpp in Sources */,
</span><span class="cx">                                 37F57AB91A50726900876F98 /* AccessibilityARIAGrid.cpp in Sources */,
</span><span class="cx">                                 37F57ABA1A50726F00876F98 /* AccessibilityARIAGridCell.cpp in Sources */,
</span><span class="lines">@@ -29833,6 +29906,7 @@
</span><span class="cx">                                 A120ACA413F998CA00FE4AC7 /* LayoutRepainter.cpp in Sources */,
</span><span class="cx">                                 0F36E7391BD184B9002DB891 /* LayoutSize.cpp in Sources */,
</span><span class="cx">                                 2D9066060BE141D400956998 /* LayoutState.cpp in Sources */,
</span><ins>+                                57A9C88E1DA70BF800BC7305 /* JSSubtleCryptoCustom.cpp in Sources */,
</ins><span class="cx">                                 E4C3B1FC0F0E4170009693F6 /* LegacyTileCache.mm in Sources */,
</span><span class="cx">                                 E4B65A5A132FAAF90070E7BE /* LegacyTileGrid.mm in Sources */,
</span><span class="cx">                                 E424A3A01330DF1E00CF6DC9 /* LegacyTileGridTile.mm in Sources */,
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSSubtleCryptoCustomcpp"></a>
<div class="addfile"><h4>Added: trunk/Source/WebCore/bindings/js/JSSubtleCryptoCustom.cpp (0 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSSubtleCryptoCustom.cpp                                (rev 0)
+++ trunk/Source/WebCore/bindings/js/JSSubtleCryptoCustom.cpp        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -0,0 +1,285 @@
</span><ins>+/*
+ * Copyright (C) 2016 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include &quot;config.h&quot;
+#include &quot;JSSubtleCrypto.h&quot;
+
+#if ENABLE(SUBTLE_CRYPTO)
+
+#include &quot;CryptoAlgorithm.h&quot;
+#include &quot;CryptoAlgorithmRegistry.h&quot;
+#include &quot;JSAesKeyGenParams.h&quot;
+#include &quot;JSCryptoAlgorithmParameters.h&quot;
+#include &quot;JSCryptoKey.h&quot;
+#include &quot;JSCryptoKeyPair.h&quot;
+#include &quot;JSDOMPromise.h&quot;
+#include &quot;JSHmacKeyGenParams.h&quot;
+#include &quot;JSRsaHashedKeyGenParams.h&quot;
+#include &quot;JSRsaKeyGenParams.h&quot;
+#include &quot;ScriptState.h&quot;
+#include &lt;runtime/Error.h&gt;
+#include &lt;runtime/IteratorOperations.h&gt;
+
+using namespace JSC;
+
+namespace WebCore {
+
+enum class Operations {
+    GenerateKey,
+    Digest,
+};
+
+static std::unique_ptr&lt;CryptoAlgorithmParameters&gt; normalizeCryptoAlgorithmParameters(ExecState&amp;, JSValue, Operations);
+
+static CryptoAlgorithmIdentifier toHashIdentifier(ExecState&amp; state, JSValue value)
+{
+    VM&amp; vm = state.vm();
+    auto scope = DECLARE_THROW_SCOPE(vm);
+
+    auto digestParams = normalizeCryptoAlgorithmParameters(state, value, Operations::Digest);
+    RETURN_IF_EXCEPTION(scope, { });
+    return digestParams-&gt;identifier;
+}
+
+static std::unique_ptr&lt;CryptoAlgorithmParameters&gt; normalizeCryptoAlgorithmParameters(ExecState&amp; state, JSValue value, Operations operation)
+{
+    VM&amp; vm = state.vm();
+    auto scope = DECLARE_THROW_SCOPE(vm);
+
+    if (value.isString()) {
+        JSObject* newParams = constructEmptyObject(&amp;state);
+        newParams-&gt;putDirect(vm, Identifier::fromString(&amp;vm, &quot;name&quot;), value);
+        return normalizeCryptoAlgorithmParameters(state, newParams, operation);
+    }
+
+    if (value.isObject()) {
+        auto params = convertDictionary&lt;CryptoAlgorithmParameters&gt;(state, value);
+        RETURN_IF_EXCEPTION(scope, nullptr);
+
+        CryptoAlgorithmIdentifier identifier;
+        if (!CryptoAlgorithmRegistry::singleton().getIdentifierForName(params.name, identifier)) {
+            setDOMException(&amp;state, NOT_SUPPORTED_ERR);
+            return nullptr;
+        }
+
+        std::unique_ptr&lt;CryptoAlgorithmParameters&gt; result;
+        switch (operation) {
+        case Operations::GenerateKey:
+            switch (identifier) {
+            case CryptoAlgorithmIdentifier::RSAES_PKCS1_v1_5: {
+                auto params = convertDictionary&lt;CryptoAlgorithmRsaKeyGenParams&gt;(state, value);
+                RETURN_IF_EXCEPTION(scope, nullptr);
+                result = std::make_unique&lt;CryptoAlgorithmRsaKeyGenParams&gt;(params);
+                break;
+            }
+            case CryptoAlgorithmIdentifier::RSASSA_PKCS1_v1_5:
+            case CryptoAlgorithmIdentifier::RSA_PSS:
+            case CryptoAlgorithmIdentifier::RSA_OAEP: {
+                auto params = convertDictionary&lt;CryptoAlgorithmRsaHashedKeyGenParams&gt;(state, value);
+                RETURN_IF_EXCEPTION(scope, nullptr);
+                params.hashIdentifier = toHashIdentifier(state, params.hash);
+                RETURN_IF_EXCEPTION(scope, nullptr);
+                result = std::make_unique&lt;CryptoAlgorithmRsaHashedKeyGenParams&gt;(params);
+                break;
+            }
+            case CryptoAlgorithmIdentifier::AES_CTR:
+            case CryptoAlgorithmIdentifier::AES_CBC:
+            case CryptoAlgorithmIdentifier::AES_CMAC:
+            case CryptoAlgorithmIdentifier::AES_GCM:
+            case CryptoAlgorithmIdentifier::AES_CFB:
+            case CryptoAlgorithmIdentifier::AES_KW: {
+                auto params = convertDictionary&lt;CryptoAlgorithmAesKeyGenParams&gt;(state, value);
+                RETURN_IF_EXCEPTION(scope, nullptr);
+                result = std::make_unique&lt;CryptoAlgorithmAesKeyGenParams&gt;(params);
+                break;
+            }
+            case CryptoAlgorithmIdentifier::HMAC: {
+                auto params = convertDictionary&lt;CryptoAlgorithmHmacKeyGenParams&gt;(state, value);
+                RETURN_IF_EXCEPTION(scope, nullptr);
+                params.hashIdentifier = toHashIdentifier(state, params.hash);
+                RETURN_IF_EXCEPTION(scope, nullptr);
+                result = std::make_unique&lt;CryptoAlgorithmHmacKeyGenParams&gt;(params);
+                break;
+            }
+            default:
+                setDOMException(&amp;state, NOT_SUPPORTED_ERR);
+                return nullptr;
+            }
+            break;
+        case Operations::Digest:
+            switch (identifier) {
+            case CryptoAlgorithmIdentifier::SHA_1:
+            case CryptoAlgorithmIdentifier::SHA_224:
+            case CryptoAlgorithmIdentifier::SHA_256:
+            case CryptoAlgorithmIdentifier::SHA_384:
+            case CryptoAlgorithmIdentifier::SHA_512:
+                result = std::make_unique&lt;CryptoAlgorithmParameters&gt;(params);
+                break;
+            default:
+                setDOMException(&amp;state, NOT_SUPPORTED_ERR);
+                return nullptr;
+            }
+            break;
+        default:
+            ASSERT_NOT_REACHED();
+            return nullptr;
+        }
+
+        result-&gt;identifier = identifier;
+        return result;
+    }
+
+    throwTypeError(&amp;state, scope, ASCIILiteral(&quot;Invalid AlgorithmIdentifier&quot;));
+    return nullptr;
+}
+
+static CryptoKeyUsage cryptoKeyUsagesFromJSValue(ExecState&amp; state, JSValue iterable)
+{
+    VM&amp; vm = state.vm();
+    auto scope = DECLARE_THROW_SCOPE(vm);
+
+    CryptoKeyUsage result = 0;
+    forEachInIterable(&amp;state, iterable, [&amp;result](VM&amp; vm, ExecState* state, JSValue nextItem) {
+        auto scope = DECLARE_THROW_SCOPE(vm);
+
+        String usageString = nextItem.toWTFString(state);
+        RETURN_IF_EXCEPTION(scope, void());
+        if (usageString == &quot;encrypt&quot;)
+            result |= CryptoKeyUsageEncrypt;
+        else if (usageString == &quot;decrypt&quot;)
+            result |= CryptoKeyUsageDecrypt;
+        else if (usageString == &quot;sign&quot;)
+            result |= CryptoKeyUsageSign;
+        else if (usageString == &quot;verify&quot;)
+            result |= CryptoKeyUsageVerify;
+        else if (usageString == &quot;deriveKey&quot;)
+            result |= CryptoKeyUsageDeriveKey;
+        else if (usageString == &quot;deriveBits&quot;)
+            result |= CryptoKeyUsageDeriveBits;
+        else if (usageString == &quot;wrapKey&quot;)
+            result |= CryptoKeyUsageWrapKey;
+        else if (usageString == &quot;unwrapKey&quot;)
+            result |= CryptoKeyUsageUnwrapKey;
+        else
+            throwTypeError(state, scope, ASCIILiteral(&quot;Invalid KeyUsages&quot;));
+    });
+    RETURN_IF_EXCEPTION(scope, 0);
+    return result;
+}
+
+static RefPtr&lt;CryptoAlgorithm&gt; createAlgorithm(ExecState&amp; state, CryptoAlgorithmIdentifier identifier)
+{
+    auto result = CryptoAlgorithmRegistry::singleton().create(identifier);
+    if (!result)
+        setDOMException(&amp;state, NOT_SUPPORTED_ERR);
+    return result;
+}
+
+// Maybe we want more specific error messages?
+static void rejectWithException(Ref&lt;DeferredPromise&gt;&amp;&amp; passedPromise, ExceptionCode ec)
+{
+    switch (ec) {
+    case NOT_SUPPORTED_ERR:
+        passedPromise-&gt;reject(ec, ASCIILiteral(&quot;The algorithm is not supported&quot;));
+        return;
+    case SYNTAX_ERR:
+        passedPromise-&gt;reject(ec, ASCIILiteral(&quot;A required parameter was missing or out-of-range&quot;));
+        return;
+    case INVALID_STATE_ERR:
+        passedPromise-&gt;reject(ec, ASCIILiteral(&quot;The requested operation is not valid for the current state of the provided key&quot;));
+        return;
+    case INVALID_ACCESS_ERR:
+        passedPromise-&gt;reject(ec, ASCIILiteral(&quot;The requested operation is not valid for the provided key&quot;));
+        return;
+    case UnknownError:
+        passedPromise-&gt;reject(ec, ASCIILiteral(&quot;The operation failed for an unknown transient reason (e.g. out of memory)&quot;));
+        return;
+    case DataError:
+        passedPromise-&gt;reject(ec, ASCIILiteral(&quot;Data provided to an operation does not meet requirements&quot;));
+        return;
+    case OperationError:
+        passedPromise-&gt;reject(ec, ASCIILiteral(&quot;The operation failed for an operation-specific reason&quot;));
+        return;
+    }
+    ASSERT_NOT_REACHED();
+}
+
+static void jsSubtleCryptoFunctionGenerateKeyPromise(ExecState&amp; state, Ref&lt;DeferredPromise&gt;&amp;&amp; promise)
+{
+    VM&amp; vm = state.vm();
+    auto scope = DECLARE_THROW_SCOPE(vm);
+
+    if (UNLIKELY(state.argumentCount() &lt; 3)) {
+        promise-&gt;reject&lt;JSValue&gt;(createNotEnoughArgumentsError(&amp;state));
+        return;
+    }
+
+    auto params = normalizeCryptoAlgorithmParameters(state, state.uncheckedArgument(0), Operations::GenerateKey);
+    RETURN_IF_EXCEPTION(scope, void());
+
+    auto extractable = state.uncheckedArgument(1).toBoolean(&amp;state);
+    RETURN_IF_EXCEPTION(scope, void());
+
+    auto keyUsages = cryptoKeyUsagesFromJSValue(state, state.argument(2));
+    RETURN_IF_EXCEPTION(scope, void());
+
+    auto algorithm = createAlgorithm(state, params-&gt;identifier);
+    RETURN_IF_EXCEPTION(scope, void());
+
+    auto callback = [capturedPromise = promise.copyRef()](CryptoKey* key, CryptoKeyPair* keyPair) mutable {
+        ASSERT(key || keyPair);
+        ASSERT(!key || !keyPair);
+        if (key) {
+            if ((key-&gt;type() == CryptoKeyType::Private || key-&gt;type() == CryptoKeyType::Secret) &amp;&amp; !key-&gt;usagesBitmap()) {
+                rejectWithException(WTFMove(capturedPromise), SYNTAX_ERR);
+                return;
+            }
+            capturedPromise-&gt;resolve(key);
+        } else {
+            if (!keyPair-&gt;privateKey()-&gt;usagesBitmap()) {
+                rejectWithException(WTFMove(capturedPromise), SYNTAX_ERR);
+                return;
+            }
+            capturedPromise-&gt;resolve(keyPair);
+        }
+    };
+    auto exceptionCallback = [capturedPromise =  promise.copyRef()](ExceptionCode ec) mutable {
+        rejectWithException(WTFMove(capturedPromise), ec);
+    };
+
+    // The spec suggests we should perform the following task asynchronously regardless what kind of keys it produces
+    // as of 11 December 2014: https://www.w3.org/TR/WebCryptoAPI/#SubtleCrypto-method-generateKey
+    // That's simply not efficient for AES and HMAC keys. Therefore, we perform it as an async task conditionally.
+    algorithm-&gt;generateKey(WTFMove(params), extractable, keyUsages, WTFMove(callback), WTFMove(exceptionCallback), scriptExecutionContextFromExecState(&amp;state));
+}
+
+JSValue JSSubtleCrypto::generateKey(ExecState&amp; state)
+{
+    return callPromiseFunction&lt;jsSubtleCryptoFunctionGenerateKeyPromise, PromiseExecutionScope::WindowOrWorker&gt;(state);
+}
+
+} // namespace WebCore
+
+#endif
</ins></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSWebKitSubtleCryptoCustomcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSWebKitSubtleCryptoCustom.cpp (207808 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSWebKitSubtleCryptoCustom.cpp        2016-10-25 05:26:35 UTC (rev 207808)
+++ trunk/Source/WebCore/bindings/js/JSWebKitSubtleCryptoCustom.cpp        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -41,6 +41,7 @@
</span><span class="cx"> #include &quot;JSCryptoKeySerializationJWK.h&quot;
</span><span class="cx"> #include &quot;JSCryptoOperationData.h&quot;
</span><span class="cx"> #include &quot;JSDOMPromise.h&quot;
</span><ins>+#include &quot;ScriptState.h&quot;
</ins><span class="cx"> #include &lt;runtime/Error.h&gt;
</span><span class="cx"> 
</span><span class="cx"> using namespace JSC;
</span><span class="lines">@@ -445,7 +446,7 @@
</span><span class="cx">     };
</span><span class="cx"> 
</span><span class="cx">     ExceptionCode ec = 0;
</span><del>-    algorithm-&gt;generateKey(*parameters, extractable, keyUsages, WTFMove(successCallback), WTFMove(failureCallback), ec);
</del><ins>+    algorithm-&gt;generateKey(*parameters, extractable, keyUsages, WTFMove(successCallback), WTFMove(failureCallback), ec, scriptExecutionContextFromExecState(&amp;state));
</ins><span class="cx">     if (ec) {
</span><span class="cx">         setDOMException(&amp;state, ec);
</span><span class="cx">         return jsUndefined();
</span></span></pre></div>
<a id="trunkSourceWebCorecryptoCryptoAlgorithmcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/crypto/CryptoAlgorithm.cpp (207808 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/crypto/CryptoAlgorithm.cpp        2016-10-25 05:26:35 UTC (rev 207808)
+++ trunk/Source/WebCore/crypto/CryptoAlgorithm.cpp        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -40,6 +40,11 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+void CryptoAlgorithm::generateKey(const std::unique_ptr&lt;CryptoAlgorithmParameters&gt;&amp;&amp;, bool, CryptoKeyUsage, KeyOrKeyPairCallback&amp;&amp;, ExceptionCallback&amp;&amp; exceptionCallback, ScriptExecutionContext*)
+{
+    exceptionCallback(NOT_SUPPORTED_ERR);
+}
+
</ins><span class="cx"> void CryptoAlgorithm::encrypt(const CryptoAlgorithmParametersDeprecated&amp;, const CryptoKey&amp;, const CryptoOperationData&amp;, VectorCallback&amp;&amp;, VoidCallback&amp;&amp;, ExceptionCode&amp; ec)
</span><span class="cx"> {
</span><span class="cx">     ec = NOT_SUPPORTED_ERR;
</span><span class="lines">@@ -65,7 +70,7 @@
</span><span class="cx">     ec = NOT_SUPPORTED_ERR;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void CryptoAlgorithm::generateKey(const CryptoAlgorithmParametersDeprecated&amp;, bool, CryptoKeyUsage, KeyOrKeyPairCallback&amp;&amp;, VoidCallback&amp;&amp;, ExceptionCode&amp; ec)
</del><ins>+void CryptoAlgorithm::generateKey(const CryptoAlgorithmParametersDeprecated&amp;, bool, CryptoKeyUsage, KeyOrKeyPairCallback&amp;&amp;, VoidCallback&amp;&amp;, ExceptionCode&amp; ec, ScriptExecutionContext*)
</ins><span class="cx"> {
</span><span class="cx">     ec = NOT_SUPPORTED_ERR;
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorecryptoCryptoAlgorithmh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/crypto/CryptoAlgorithm.h (207808 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/crypto/CryptoAlgorithm.h        2016-10-25 05:26:35 UTC (rev 207808)
+++ trunk/Source/WebCore/crypto/CryptoAlgorithm.h        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -28,7 +28,7 @@
</span><span class="cx"> 
</span><span class="cx"> #include &quot;CryptoAlgorithmIdentifier.h&quot;
</span><span class="cx"> #include &quot;CryptoKeyUsage.h&quot;
</span><del>-#include &lt;functional&gt;
</del><ins>+#include &lt;wtf/Function.h&gt;
</ins><span class="cx"> #include &lt;wtf/Noncopyable.h&gt;
</span><span class="cx"> #include &lt;wtf/RefCounted.h&gt;
</span><span class="cx"> #include &lt;wtf/Vector.h&gt;
</span><span class="lines">@@ -39,33 +39,38 @@
</span><span class="cx"> 
</span><span class="cx"> typedef int ExceptionCode;
</span><span class="cx"> 
</span><ins>+class CryptoAlgorithmParameters;
</ins><span class="cx"> class CryptoAlgorithmParametersDeprecated;
</span><span class="cx"> class CryptoKey;
</span><span class="cx"> class CryptoKeyPair;
</span><span class="cx"> class CryptoKeyData;
</span><ins>+class ScriptExecutionContext;
</ins><span class="cx"> 
</span><span class="cx"> // Data is mutable, so async operations should copy it first.
</span><span class="cx"> typedef std::pair&lt;const uint8_t*, size_t&gt; CryptoOperationData;
</span><span class="cx"> 
</span><span class="cx"> class CryptoAlgorithm : public RefCounted&lt;CryptoAlgorithm&gt; {
</span><del>-    WTF_MAKE_NONCOPYABLE(CryptoAlgorithm)
</del><span class="cx"> public:
</span><span class="cx">     virtual ~CryptoAlgorithm();
</span><span class="cx"> 
</span><span class="cx">     virtual CryptoAlgorithmIdentifier identifier() const = 0;
</span><span class="cx"> 
</span><del>-    typedef std::function&lt;void(bool)&gt; BoolCallback;
-    typedef std::function&lt;void(CryptoKey&amp;)&gt; KeyCallback;
-    typedef std::function&lt;void(CryptoKey*, CryptoKeyPair*)&gt; KeyOrKeyPairCallback;
-    typedef std::function&lt;void(const Vector&lt;uint8_t&gt;&amp;)&gt; VectorCallback;
-    typedef std::function&lt;void()&gt; VoidCallback;
</del><ins>+    using BoolCallback = WTF::Function&lt;void(bool)&gt;;
+    using KeyCallback = WTF::Function&lt;void(CryptoKey&amp;)&gt;;
+    using KeyOrKeyPairCallback = WTF::Function&lt;void(CryptoKey*, CryptoKeyPair*)&gt;;
+    using VectorCallback = WTF::Function&lt;void(const Vector&lt;uint8_t&gt;&amp;)&gt;;
+    using VoidCallback = WTF::Function&lt;void()&gt;;
+    using ExceptionCallback = WTF::Function&lt;void(ExceptionCode)&gt;;
</ins><span class="cx"> 
</span><ins>+    virtual void generateKey(const std::unique_ptr&lt;CryptoAlgorithmParameters&gt;&amp;&amp;, bool extractable, CryptoKeyUsage, KeyOrKeyPairCallback&amp;&amp;, ExceptionCallback&amp;&amp;, ScriptExecutionContext*);
+
+    // The following will be deprecated.
</ins><span class="cx">     virtual void encrypt(const CryptoAlgorithmParametersDeprecated&amp;, const CryptoKey&amp;, const CryptoOperationData&amp;, VectorCallback&amp;&amp;, VoidCallback&amp;&amp; failureCallback, ExceptionCode&amp;);
</span><span class="cx">     virtual void decrypt(const CryptoAlgorithmParametersDeprecated&amp;, const CryptoKey&amp;, const CryptoOperationData&amp;, VectorCallback&amp;&amp;, VoidCallback&amp;&amp; failureCallback, ExceptionCode&amp;);
</span><span class="cx">     virtual void sign(const CryptoAlgorithmParametersDeprecated&amp;, const CryptoKey&amp;, const CryptoOperationData&amp;, VectorCallback&amp;&amp;, VoidCallback&amp;&amp; failureCallback, ExceptionCode&amp;);
</span><span class="cx">     virtual void verify(const CryptoAlgorithmParametersDeprecated&amp;, const CryptoKey&amp;, const CryptoOperationData&amp; signature, const CryptoOperationData&amp;, BoolCallback&amp;&amp;, VoidCallback&amp;&amp; failureCallback, ExceptionCode&amp;);
</span><span class="cx">     virtual void digest(const CryptoAlgorithmParametersDeprecated&amp;, const CryptoOperationData&amp;, VectorCallback&amp;&amp;, VoidCallback&amp;&amp; failureCallback, ExceptionCode&amp;);
</span><del>-    virtual void generateKey(const CryptoAlgorithmParametersDeprecated&amp;, bool extractable, CryptoKeyUsage, KeyOrKeyPairCallback&amp;&amp;, VoidCallback&amp;&amp; failureCallback, ExceptionCode&amp;);
</del><ins>+    virtual void generateKey(const CryptoAlgorithmParametersDeprecated&amp;, bool extractable, CryptoKeyUsage, KeyOrKeyPairCallback&amp;&amp;, VoidCallback&amp;&amp; failureCallback, ExceptionCode&amp;, ScriptExecutionContext*);
</ins><span class="cx">     virtual void deriveKey(const CryptoAlgorithmParametersDeprecated&amp;, const CryptoKey&amp; baseKey, CryptoAlgorithm* derivedKeyType, bool extractable, CryptoKeyUsage, KeyCallback&amp;&amp;, VoidCallback&amp;&amp; failureCallback, ExceptionCode&amp;);
</span><span class="cx">     virtual void deriveBits(const CryptoAlgorithmParametersDeprecated&amp;, const CryptoKey&amp; baseKey, unsigned long length, VectorCallback&amp;&amp;, VoidCallback&amp;&amp; failureCallback, ExceptionCode&amp;);
</span><span class="cx">     virtual void importKey(const CryptoAlgorithmParametersDeprecated&amp;, const CryptoKeyData&amp;, bool extractable, CryptoKeyUsage, KeyCallback&amp;&amp;, VoidCallback&amp;&amp; failureCallback, ExceptionCode&amp;);
</span></span></pre></div>
<a id="trunkSourceWebCorecryptoCryptoAlgorithmParametershfromrev207808trunkSourceWebCorecryptoCryptoAlgorithmParametersDeprecatedh"></a>
<div class="copfile"><h4>Copied: trunk/Source/WebCore/crypto/CryptoAlgorithmParameters.h (from rev 207808, trunk/Source/WebCore/crypto/CryptoAlgorithmParametersDeprecated.h) (0 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/crypto/CryptoAlgorithmParameters.h                                (rev 0)
+++ trunk/Source/WebCore/crypto/CryptoAlgorithmParameters.h        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -0,0 +1,62 @@
</span><ins>+/*
+ * Copyright (C) 2016 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#pragma once
+
+#include &quot;CryptoAlgorithmIdentifier.h&quot;
+#include &lt;wtf/TypeCasts.h&gt;
+#include &lt;wtf/text/WTFString.h&gt;
+
+#if ENABLE(SUBTLE_CRYPTO)
+
+namespace WebCore {
+
+class CryptoAlgorithmParameters {
+public:
+    enum class Class {
+        None,
+        AesKeyGenParams,
+        HmacKeyGenParams,
+        RsaHashedKeyGenParams,
+        RsaKeyGenParams,
+    };
+
+    // FIXME: Consider merging name and identifier.
+    String name;
+    CryptoAlgorithmIdentifier identifier;
+
+    virtual ~CryptoAlgorithmParameters() { }
+
+    virtual Class parametersClass() const { return Class::None; }
+};
+
+} // namespace WebCore
+
+#define SPECIALIZE_TYPE_TRAITS_CRYPTO_ALGORITHM_PARAMETERS(ToClassName) \
+SPECIALIZE_TYPE_TRAITS_BEGIN(WebCore::CryptoAlgorithm##ToClassName) \
+static bool isType(const WebCore::CryptoAlgorithmParameters&amp; parameters) { return parameters.parametersClass() == WebCore::CryptoAlgorithmParameters::Class::ToClassName; } \
+SPECIALIZE_TYPE_TRAITS_END()
+
+#endif // ENABLE(SUBTLE_CRYPTO)
</ins></span></pre></div>
<a id="trunkSourceWebCorecryptoCryptoAlgorithmParametersidlfromrev207808trunkSourceWebCorecryptoCryptoKeyPairidl"></a>
<div class="copfile"><h4>Copied: trunk/Source/WebCore/crypto/CryptoAlgorithmParameters.idl (from rev 207808, trunk/Source/WebCore/crypto/CryptoKeyPair.idl) (0 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/crypto/CryptoAlgorithmParameters.idl                                (rev 0)
+++ trunk/Source/WebCore/crypto/CryptoAlgorithmParameters.idl        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -0,0 +1,30 @@
</span><ins>+/*
+ * Copyright (C) 2016 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+[
+    Conditional=SUBTLE_CRYPTO,
+] dictionary CryptoAlgorithmParameters {
+    required DOMString name;
+};
</ins></span></pre></div>
<a id="trunkSourceWebCorecryptoCryptoAlgorithmParametersDeprecatedh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/crypto/CryptoAlgorithmParametersDeprecated.h (207808 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/crypto/CryptoAlgorithmParametersDeprecated.h        2016-10-25 05:26:35 UTC (rev 207808)
+++ trunk/Source/WebCore/crypto/CryptoAlgorithmParametersDeprecated.h        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -54,7 +54,7 @@
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span><span class="cx"> 
</span><del>-#define SPECIALIZE_TYPE_TRAITS_CRYPTO_ALGORITHM_PARAMETERS(ToClassName) \
</del><ins>+#define SPECIALIZE_TYPE_TRAITS_CRYPTO_ALGORITHM_PARAMETERS_DEPRECATED(ToClassName) \
</ins><span class="cx"> SPECIALIZE_TYPE_TRAITS_BEGIN(WebCore::CryptoAlgorithm##ToClassName##Deprecated) \
</span><span class="cx">     static bool isType(const WebCore::CryptoAlgorithmParametersDeprecated&amp; parameters) { return parameters.parametersClass() == WebCore::CryptoAlgorithmParametersDeprecated::Class::ToClassName; } \
</span><span class="cx"> SPECIALIZE_TYPE_TRAITS_END()
</span></span></pre></div>
<a id="trunkSourceWebCorecryptoCryptoKeyh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/crypto/CryptoKey.h (207808 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/crypto/CryptoKey.h        2016-10-25 05:26:35 UTC (rev 207808)
+++ trunk/Source/WebCore/crypto/CryptoKey.h        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -95,6 +95,7 @@
</span><span class="cx"> 
</span><span class="cx">     CryptoAlgorithmIdentifier algorithmIdentifier() const { return m_algorithmIdentifier; }
</span><span class="cx">     CryptoKeyUsage usagesBitmap() const { return m_usages; }
</span><ins>+    void setUsagesBitmap(CryptoKeyUsage usage) { m_usages = usage; };
</ins><span class="cx">     bool allows(CryptoKeyUsage usage) const { return usage == (m_usages &amp; usage); }
</span><span class="cx"> 
</span><span class="cx">     virtual std::unique_ptr&lt;CryptoKeyData&gt; exportData() const = 0;
</span></span></pre></div>
<a id="trunkSourceWebCorecryptoCryptoKeyPairidl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/crypto/CryptoKeyPair.idl (207808 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/crypto/CryptoKeyPair.idl        2016-10-25 05:26:35 UTC (rev 207808)
+++ trunk/Source/WebCore/crypto/CryptoKeyPair.idl        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -23,6 +23,11 @@
</span><span class="cx">  * THE POSSIBILITY OF SUCH DAMAGE.
</span><span class="cx">  */
</span><span class="cx"> 
</span><ins>+// FIXME: The spec suggests that CryptoKeyPair should be of type Dictionary
+// as of 11 December 2014: https://www.w3.org/TR/WebCryptoAPI/#keypair
+// Since we don't support convert a Dictionary type object from its native
+// type to JSValue yet, we use a NoInterfaceObject hack for now. See:
+// https://bugs.webkit.org/show_bug.cgi?id=163711
</ins><span class="cx"> [
</span><span class="cx">     Conditional=SUBTLE_CRYPTO,
</span><span class="cx">     ImplementationLacksVTable,
</span></span></pre></div>
<a id="trunkSourceWebCorecryptoSubtleCryptoidl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/crypto/SubtleCrypto.idl (207808 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/crypto/SubtleCrypto.idl        2016-10-25 05:26:35 UTC (rev 207808)
+++ trunk/Source/WebCore/crypto/SubtleCrypto.idl        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -1,27 +1,27 @@
</span><span class="cx"> /*
</span><del>-* Copyright (C) 2016 Apple Inc. All rights reserved.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions
-* are met:
-* 1. Redistributions of source code must retain the above copyright
-*    notice, this list of conditions and the following disclaimer.
-* 2. Redistributions in binary form must reproduce the above copyright
-*    notice, this list of conditions and the following disclaimer in the
-*    documentation and/or other materials provided with the distribution.
-*
-* THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
-* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
-* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
-* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
-* THE POSSIBILITY OF SUCH DAMAGE.
-*/
</del><ins>+ * Copyright (C) 2016 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
</ins><span class="cx"> 
</span><span class="cx"> [
</span><span class="cx">     Conditional=SUBTLE_CRYPTO,
</span><span class="lines">@@ -29,4 +29,5 @@
</span><span class="cx">     GenerateIsReachable=ImplScriptExecutionContext,
</span><span class="cx">     NoInterfaceObject,
</span><span class="cx"> ] interface SubtleCrypto {
</span><ins>+    [Custom] Promise generateKey(AlgorithmIdentifier algorithm, boolean extractable, sequence&lt;KeyUsage&gt; keyUsages);
</ins><span class="cx"> };
</span></span></pre></div>
<a id="trunkSourceWebCorecryptoalgorithmsCryptoAlgorithmAES_CBCcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmAES_CBC.cpp (207808 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmAES_CBC.cpp        2016-10-25 05:26:35 UTC (rev 207808)
+++ trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmAES_CBC.cpp        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -29,6 +29,7 @@
</span><span class="cx"> #if ENABLE(SUBTLE_CRYPTO)
</span><span class="cx"> 
</span><span class="cx"> #include &quot;CryptoAlgorithmAesCbcParamsDeprecated.h&quot;
</span><ins>+#include &quot;CryptoAlgorithmAesKeyGenParams.h&quot;
</ins><span class="cx"> #include &quot;CryptoAlgorithmAesKeyGenParamsDeprecated.h&quot;
</span><span class="cx"> #include &quot;CryptoKeyAES.h&quot;
</span><span class="cx"> #include &quot;CryptoKeyDataOctetSequence.h&quot;
</span><span class="lines">@@ -65,6 +66,24 @@
</span><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+void CryptoAlgorithmAES_CBC::generateKey(const std::unique_ptr&lt;CryptoAlgorithmParameters&gt;&amp;&amp; parameters, bool extractable, CryptoKeyUsage usages, KeyOrKeyPairCallback&amp;&amp; callback, ExceptionCallback&amp;&amp; exceptionCallback, ScriptExecutionContext*)
+{
+    const auto&amp; aesParameters = downcast&lt;CryptoAlgorithmAesKeyGenParams&gt;(*parameters);
+
+    if (usages &amp; (CryptoKeyUsageSign | CryptoKeyUsageVerify | CryptoKeyUsageDeriveKey | CryptoKeyUsageDeriveBits)) {
+        exceptionCallback(SYNTAX_ERR);
+        return;
+    }
+
+    auto result = CryptoKeyAES::generate(CryptoAlgorithmIdentifier::AES_CBC, aesParameters.length, extractable, usages);
+    if (!result) {
+        exceptionCallback(OperationError);
+        return;
+    }
+
+    callback(result.get(), nullptr);
+}
+
</ins><span class="cx"> void CryptoAlgorithmAES_CBC::encrypt(const CryptoAlgorithmParametersDeprecated&amp; parameters, const CryptoKey&amp; key, const CryptoOperationData&amp; data, VectorCallback&amp;&amp; callback, VoidCallback&amp;&amp; failureCallback, ExceptionCode&amp; ec)
</span><span class="cx"> {
</span><span class="cx">     const CryptoAlgorithmAesCbcParamsDeprecated&amp; aesCBCParameters = downcast&lt;CryptoAlgorithmAesCbcParamsDeprecated&gt;(parameters);
</span><span class="lines">@@ -89,7 +108,7 @@
</span><span class="cx">     platformDecrypt(aesCBCParameters, downcast&lt;CryptoKeyAES&gt;(key), data, WTFMove(callback), WTFMove(failureCallback), ec);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void CryptoAlgorithmAES_CBC::generateKey(const CryptoAlgorithmParametersDeprecated&amp; parameters, bool extractable, CryptoKeyUsage usages, KeyOrKeyPairCallback&amp;&amp; callback, VoidCallback&amp;&amp; failureCallback, ExceptionCode&amp;)
</del><ins>+void CryptoAlgorithmAES_CBC::generateKey(const CryptoAlgorithmParametersDeprecated&amp; parameters, bool extractable, CryptoKeyUsage usages, KeyOrKeyPairCallback&amp;&amp; callback, VoidCallback&amp;&amp; failureCallback, ExceptionCode&amp;, ScriptExecutionContext*)
</ins><span class="cx"> {
</span><span class="cx">     const CryptoAlgorithmAesKeyGenParamsDeprecated&amp; aesParameters = downcast&lt;CryptoAlgorithmAesKeyGenParamsDeprecated&gt;(parameters);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorecryptoalgorithmsCryptoAlgorithmAES_CBCh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmAES_CBC.h (207808 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmAES_CBC.h        2016-10-25 05:26:35 UTC (rev 207808)
+++ trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmAES_CBC.h        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -44,9 +44,12 @@
</span><span class="cx"> 
</span><span class="cx">     CryptoAlgorithmIdentifier identifier() const override;
</span><span class="cx"> 
</span><ins>+    void generateKey(const std::unique_ptr&lt;CryptoAlgorithmParameters&gt;&amp;&amp;, bool extractable, CryptoKeyUsage, KeyOrKeyPairCallback&amp;&amp;, ExceptionCallback&amp;&amp;, ScriptExecutionContext*) final;
+
+    // The following will be deprecated.
</ins><span class="cx">     void encrypt(const CryptoAlgorithmParametersDeprecated&amp;, const CryptoKey&amp;, const CryptoOperationData&amp;, VectorCallback&amp;&amp;, VoidCallback&amp;&amp; failureCallback, ExceptionCode&amp;) override;
</span><span class="cx">     void decrypt(const CryptoAlgorithmParametersDeprecated&amp;, const CryptoKey&amp;, const CryptoOperationData&amp;, VectorCallback&amp;&amp;, VoidCallback&amp;&amp; failureCallback, ExceptionCode&amp;) override;
</span><del>-    void generateKey(const CryptoAlgorithmParametersDeprecated&amp;, bool extractable, CryptoKeyUsage, KeyOrKeyPairCallback&amp;&amp;, VoidCallback&amp;&amp; failureCallback, ExceptionCode&amp;) override;
</del><ins>+    void generateKey(const CryptoAlgorithmParametersDeprecated&amp;, bool extractable, CryptoKeyUsage, KeyOrKeyPairCallback&amp;&amp;, VoidCallback&amp;&amp; failureCallback, ExceptionCode&amp;, ScriptExecutionContext*) override;
</ins><span class="cx">     void importKey(const CryptoAlgorithmParametersDeprecated&amp;, const CryptoKeyData&amp;, bool extractable, CryptoKeyUsage, KeyCallback&amp;&amp;, VoidCallback&amp;&amp; failureCallback, ExceptionCode&amp;) override;
</span><span class="cx"> 
</span><span class="cx"> private:
</span></span></pre></div>
<a id="trunkSourceWebCorecryptoalgorithmsCryptoAlgorithmAES_KWcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmAES_KW.cpp (207808 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmAES_KW.cpp        2016-10-25 05:26:35 UTC (rev 207808)
+++ trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmAES_KW.cpp        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -28,6 +28,7 @@
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(SUBTLE_CRYPTO)
</span><span class="cx"> 
</span><ins>+#include &quot;CryptoAlgorithmAesKeyGenParams.h&quot;
</ins><span class="cx"> #include &quot;CryptoAlgorithmAesKeyGenParamsDeprecated.h&quot;
</span><span class="cx"> #include &quot;CryptoKeyAES.h&quot;
</span><span class="cx"> #include &quot;CryptoKeyDataOctetSequence.h&quot;
</span><span class="lines">@@ -64,6 +65,24 @@
</span><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+void CryptoAlgorithmAES_KW::generateKey(const std::unique_ptr&lt;CryptoAlgorithmParameters&gt;&amp;&amp; parameters, bool extractable, CryptoKeyUsage usages, KeyOrKeyPairCallback&amp;&amp; callback, ExceptionCallback&amp;&amp; exceptionCallback, ScriptExecutionContext*)
+{
+    const auto&amp; aesParameters = downcast&lt;CryptoAlgorithmAesKeyGenParams&gt;(*parameters);
+
+    if (usages &amp; (CryptoKeyUsageSign | CryptoKeyUsageVerify | CryptoKeyUsageDeriveKey | CryptoKeyUsageDeriveBits | CryptoKeyUsageEncrypt | CryptoKeyUsageDecrypt)) {
+        exceptionCallback(SYNTAX_ERR);
+        return;
+    }
+
+    auto result = CryptoKeyAES::generate(CryptoAlgorithmIdentifier::AES_KW, aesParameters.length, extractable, usages);
+    if (!result) {
+        exceptionCallback(OperationError);
+        return;
+    }
+
+    callback(result.get(), nullptr);
+}
+
</ins><span class="cx"> void CryptoAlgorithmAES_KW::encryptForWrapKey(const CryptoAlgorithmParametersDeprecated&amp;, const CryptoKey&amp; key, const CryptoOperationData&amp; data, VectorCallback&amp;&amp; callback, VoidCallback&amp;&amp; failureCallback, ExceptionCode&amp; ec)
</span><span class="cx"> {
</span><span class="cx">     if (!keyAlgorithmMatches(key)) {
</span><span class="lines">@@ -84,7 +103,7 @@
</span><span class="cx">     platformDecrypt(downcast&lt;CryptoKeyAES&gt;(key), data, WTFMove(callback), WTFMove(failureCallback), ec);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void CryptoAlgorithmAES_KW::generateKey(const CryptoAlgorithmParametersDeprecated&amp; parameters, bool extractable, CryptoKeyUsage usages, KeyOrKeyPairCallback&amp;&amp; callback, VoidCallback&amp;&amp; failureCallback, ExceptionCode&amp;)
</del><ins>+void CryptoAlgorithmAES_KW::generateKey(const CryptoAlgorithmParametersDeprecated&amp; parameters, bool extractable, CryptoKeyUsage usages, KeyOrKeyPairCallback&amp;&amp; callback, VoidCallback&amp;&amp; failureCallback, ExceptionCode&amp;, ScriptExecutionContext*)
</ins><span class="cx"> {
</span><span class="cx">     const CryptoAlgorithmAesKeyGenParamsDeprecated&amp; aesParameters = downcast&lt;CryptoAlgorithmAesKeyGenParamsDeprecated&gt;(parameters);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorecryptoalgorithmsCryptoAlgorithmAES_KWh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmAES_KW.h (207808 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmAES_KW.h        2016-10-25 05:26:35 UTC (rev 207808)
+++ trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmAES_KW.h        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -43,9 +43,12 @@
</span><span class="cx"> 
</span><span class="cx">     CryptoAlgorithmIdentifier identifier() const override;
</span><span class="cx"> 
</span><ins>+    void generateKey(const std::unique_ptr&lt;CryptoAlgorithmParameters&gt;&amp;&amp;, bool extractable, CryptoKeyUsage, KeyOrKeyPairCallback&amp;&amp;, ExceptionCallback&amp;&amp;, ScriptExecutionContext*) final;
+
+    // The following will be deprecated.
</ins><span class="cx">     void encryptForWrapKey(const CryptoAlgorithmParametersDeprecated&amp;, const CryptoKey&amp;, const CryptoOperationData&amp;, VectorCallback&amp;&amp;, VoidCallback&amp;&amp; failureCallback, ExceptionCode&amp;) override;
</span><span class="cx">     void decryptForUnwrapKey(const CryptoAlgorithmParametersDeprecated&amp;, const CryptoKey&amp;, const CryptoOperationData&amp;, VectorCallback&amp;&amp;, VoidCallback&amp;&amp; failureCallback, ExceptionCode&amp;) override;
</span><del>-    void generateKey(const CryptoAlgorithmParametersDeprecated&amp;, bool extractable, CryptoKeyUsage, KeyOrKeyPairCallback&amp;&amp;, VoidCallback&amp;&amp; failureCallback, ExceptionCode&amp;) override;
</del><ins>+    void generateKey(const CryptoAlgorithmParametersDeprecated&amp;, bool extractable, CryptoKeyUsage, KeyOrKeyPairCallback&amp;&amp;, VoidCallback&amp;&amp; failureCallback, ExceptionCode&amp;, ScriptExecutionContext*) override;
</ins><span class="cx">     void importKey(const CryptoAlgorithmParametersDeprecated&amp;, const CryptoKeyData&amp;, bool extractable, CryptoKeyUsage, KeyCallback&amp;&amp;, VoidCallback&amp;&amp; failureCallback, ExceptionCode&amp;) override;
</span><span class="cx"> 
</span><span class="cx"> private:
</span></span></pre></div>
<a id="trunkSourceWebCorecryptoalgorithmsCryptoAlgorithmHMACcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmHMAC.cpp (207808 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmHMAC.cpp        2016-10-25 05:26:35 UTC (rev 207808)
+++ trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmHMAC.cpp        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -28,6 +28,7 @@
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(SUBTLE_CRYPTO)
</span><span class="cx"> 
</span><ins>+#include &quot;CryptoAlgorithmHmacKeyGenParams.h&quot;
</ins><span class="cx"> #include &quot;CryptoAlgorithmHmacKeyParamsDeprecated.h&quot;
</span><span class="cx"> #include &quot;CryptoAlgorithmHmacParamsDeprecated.h&quot;
</span><span class="cx"> #include &quot;CryptoKeyDataOctetSequence.h&quot;
</span><span class="lines">@@ -67,6 +68,29 @@
</span><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+void CryptoAlgorithmHMAC::generateKey(const std::unique_ptr&lt;CryptoAlgorithmParameters&gt;&amp;&amp; parameters, bool extractable, CryptoKeyUsage usages, KeyOrKeyPairCallback&amp;&amp; callback, ExceptionCallback&amp;&amp; exceptionCallback, ScriptExecutionContext*)
+{
+    const auto&amp; hmacParameters = downcast&lt;CryptoAlgorithmHmacKeyGenParams&gt;(*parameters);
+
+    if (usages &amp; (CryptoKeyUsageEncrypt | CryptoKeyUsageDecrypt | CryptoKeyUsageDeriveKey | CryptoKeyUsageDeriveBits | CryptoKeyUsageWrapKey | CryptoKeyUsageUnwrapKey)) {
+        exceptionCallback(SYNTAX_ERR);
+        return;
+    }
+
+    if (hmacParameters.length &amp;&amp; !hmacParameters.length.value()) {
+        exceptionCallback(OperationError);
+        return;
+    }
+
+    auto result = CryptoKeyHMAC::generate(hmacParameters.length.valueOr(0), hmacParameters.hashIdentifier, extractable, usages);
+    if (!result) {
+        exceptionCallback(OperationError);
+        return;
+    }
+
+    callback(result.get(), nullptr);
+}
+
</ins><span class="cx"> void CryptoAlgorithmHMAC::sign(const CryptoAlgorithmParametersDeprecated&amp; parameters, const CryptoKey&amp; key, const CryptoOperationData&amp; data, VectorCallback&amp;&amp; callback, VoidCallback&amp;&amp; failureCallback, ExceptionCode&amp; ec)
</span><span class="cx"> {
</span><span class="cx">     const CryptoAlgorithmHmacParamsDeprecated&amp; hmacParameters = downcast&lt;CryptoAlgorithmHmacParamsDeprecated&gt;(parameters);
</span><span class="lines">@@ -91,7 +115,7 @@
</span><span class="cx">     platformVerify(hmacParameters, downcast&lt;CryptoKeyHMAC&gt;(key), expectedSignature, data, WTFMove(callback), WTFMove(failureCallback), ec);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void CryptoAlgorithmHMAC::generateKey(const CryptoAlgorithmParametersDeprecated&amp; parameters, bool extractable, CryptoKeyUsage usages, KeyOrKeyPairCallback&amp;&amp; callback, VoidCallback&amp;&amp; failureCallback, ExceptionCode&amp;)
</del><ins>+void CryptoAlgorithmHMAC::generateKey(const CryptoAlgorithmParametersDeprecated&amp; parameters, bool extractable, CryptoKeyUsage usages, KeyOrKeyPairCallback&amp;&amp; callback, VoidCallback&amp;&amp; failureCallback, ExceptionCode&amp;, ScriptExecutionContext*)
</ins><span class="cx"> {
</span><span class="cx">     const CryptoAlgorithmHmacKeyParamsDeprecated&amp; hmacParameters = downcast&lt;CryptoAlgorithmHmacKeyParamsDeprecated&gt;(parameters);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorecryptoalgorithmsCryptoAlgorithmHMACh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmHMAC.h (207808 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmHMAC.h        2016-10-25 05:26:35 UTC (rev 207808)
+++ trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmHMAC.h        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -44,9 +44,12 @@
</span><span class="cx"> 
</span><span class="cx">     CryptoAlgorithmIdentifier identifier() const override;
</span><span class="cx"> 
</span><ins>+    void generateKey(const std::unique_ptr&lt;CryptoAlgorithmParameters&gt;&amp;&amp;, bool extractable, CryptoKeyUsage, KeyOrKeyPairCallback&amp;&amp;, ExceptionCallback&amp;&amp;, ScriptExecutionContext*) final;
+
+    // The following will be deprecated.
</ins><span class="cx">     void sign(const CryptoAlgorithmParametersDeprecated&amp;, const CryptoKey&amp;, const CryptoOperationData&amp;, VectorCallback&amp;&amp;, VoidCallback&amp;&amp; failureCallback, ExceptionCode&amp;) override;
</span><span class="cx">     void verify(const CryptoAlgorithmParametersDeprecated&amp;, const CryptoKey&amp;, const CryptoOperationData&amp; signature, const CryptoOperationData&amp;, BoolCallback&amp;&amp;, VoidCallback&amp;&amp; failureCallback, ExceptionCode&amp;) override;
</span><del>-    void generateKey(const CryptoAlgorithmParametersDeprecated&amp;, bool extractable, CryptoKeyUsage, KeyOrKeyPairCallback&amp;&amp;, VoidCallback&amp;&amp; failureCallback, ExceptionCode&amp;) override;
</del><ins>+    void generateKey(const CryptoAlgorithmParametersDeprecated&amp;, bool extractable, CryptoKeyUsage, KeyOrKeyPairCallback&amp;&amp;, VoidCallback&amp;&amp; failureCallback, ExceptionCode&amp;, ScriptExecutionContext*) override;
</ins><span class="cx">     void importKey(const CryptoAlgorithmParametersDeprecated&amp;, const CryptoKeyData&amp;, bool extractable, CryptoKeyUsage, KeyCallback&amp;&amp;, VoidCallback&amp;&amp; failureCallback, ExceptionCode&amp;) override;
</span><span class="cx"> 
</span><span class="cx"> private:
</span></span></pre></div>
<a id="trunkSourceWebCorecryptoalgorithmsCryptoAlgorithmRSAES_PKCS1_v1_5cpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmRSAES_PKCS1_v1_5.cpp (207808 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmRSAES_PKCS1_v1_5.cpp        2016-10-25 05:26:35 UTC (rev 207808)
+++ trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmRSAES_PKCS1_v1_5.cpp        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -28,9 +28,11 @@
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(SUBTLE_CRYPTO)
</span><span class="cx"> 
</span><ins>+#include &quot;CryptoAlgorithmRsaKeyGenParams.h&quot;
</ins><span class="cx"> #include &quot;CryptoAlgorithmRsaKeyGenParamsDeprecated.h&quot;
</span><span class="cx"> #include &quot;CryptoAlgorithmRsaKeyParamsWithHashDeprecated.h&quot;
</span><span class="cx"> #include &quot;CryptoKeyDataRSAComponents.h&quot;
</span><ins>+#include &quot;CryptoKeyPair.h&quot;
</ins><span class="cx"> #include &quot;CryptoKeyRSA.h&quot;
</span><span class="cx"> #include &quot;ExceptionCode.h&quot;
</span><span class="cx"> 
</span><span class="lines">@@ -65,6 +67,27 @@
</span><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+void CryptoAlgorithmRSAES_PKCS1_v1_5::generateKey(const std::unique_ptr&lt;CryptoAlgorithmParameters&gt;&amp;&amp; parameters, bool extractable, CryptoKeyUsage usages, KeyOrKeyPairCallback&amp;&amp; callback, ExceptionCallback&amp;&amp; exceptionCallback, ScriptExecutionContext* context)
+{
+    const auto&amp; rsaParameters = downcast&lt;CryptoAlgorithmRsaKeyGenParams&gt;(*parameters);
+
+    if (usages &amp; (CryptoKeyUsageSign | CryptoKeyUsageVerify | CryptoKeyUsageDeriveKey | CryptoKeyUsageDeriveBits | CryptoKeyUsageWrapKey | CryptoKeyUsageUnwrapKey)) {
+        exceptionCallback(SYNTAX_ERR);
+        return;
+    }
+
+    auto keyPairCallback = [capturedCallback = WTFMove(callback)](CryptoKeyPair&amp; pair) {
+        pair.publicKey()-&gt;setUsagesBitmap(pair.publicKey()-&gt;usagesBitmap() &amp; CryptoKeyUsageEncrypt);
+        pair.privateKey()-&gt;setUsagesBitmap(pair.privateKey()-&gt;usagesBitmap() &amp; CryptoKeyUsageDecrypt);
+        capturedCallback(nullptr, &amp;pair);
+    };
+    auto failureCallback = [capturedCallback = WTFMove(exceptionCallback)]() {
+        capturedCallback(OperationError);
+    };
+    // Notice: CryptoAlgorithmIdentifier::SHA_1 is just a placeholder. It should not have any effect.
+    CryptoKeyRSA::generatePair(CryptoAlgorithmIdentifier::RSAES_PKCS1_v1_5, CryptoAlgorithmIdentifier::SHA_1, false, rsaParameters.modulusLength, rsaParameters.publicExponentVector(), extractable, usages, WTFMove(keyPairCallback), WTFMove(failureCallback), context);
+}
+
</ins><span class="cx"> void CryptoAlgorithmRSAES_PKCS1_v1_5::encrypt(const CryptoAlgorithmParametersDeprecated&amp;, const CryptoKey&amp; key, const CryptoOperationData&amp; data, VectorCallback&amp;&amp; callback, VoidCallback&amp;&amp; failureCallback, ExceptionCode&amp; ec)
</span><span class="cx"> {
</span><span class="cx">     if (!keyAlgorithmMatches(key)) {
</span><span class="lines">@@ -85,15 +108,15 @@
</span><span class="cx">     platformDecrypt(downcast&lt;CryptoKeyRSA&gt;(key), data, WTFMove(callback), WTFMove(failureCallback), ec);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void CryptoAlgorithmRSAES_PKCS1_v1_5::generateKey(const CryptoAlgorithmParametersDeprecated&amp; parameters, bool extractable, CryptoKeyUsage usages, KeyOrKeyPairCallback&amp;&amp; callback, VoidCallback&amp;&amp; failureCallback, ExceptionCode&amp;)
</del><ins>+void CryptoAlgorithmRSAES_PKCS1_v1_5::generateKey(const CryptoAlgorithmParametersDeprecated&amp; parameters, bool extractable, CryptoKeyUsage usages, KeyOrKeyPairCallback&amp;&amp; callback, VoidCallback&amp;&amp; failureCallback, ExceptionCode&amp;, ScriptExecutionContext* context)
</ins><span class="cx"> {
</span><span class="cx">     const CryptoAlgorithmRsaKeyGenParamsDeprecated&amp; rsaParameters = downcast&lt;CryptoAlgorithmRsaKeyGenParamsDeprecated&gt;(parameters);
</span><span class="cx"> 
</span><del>-    auto keyPairCallback = [callback](CryptoKeyPair&amp; pair) {
-        callback(nullptr, &amp;pair);
</del><ins>+    auto keyPairCallback = [capturedCallback = WTFMove(callback)](CryptoKeyPair&amp; pair) {
+        capturedCallback(nullptr, &amp;pair);
</ins><span class="cx">     };
</span><span class="cx"> 
</span><del>-    CryptoKeyRSA::generatePair(CryptoAlgorithmIdentifier::RSAES_PKCS1_v1_5, rsaParameters.hash, rsaParameters.hasHash, rsaParameters.modulusLength, rsaParameters.publicExponent, extractable, usages, WTFMove(keyPairCallback), WTFMove(failureCallback));
</del><ins>+    CryptoKeyRSA::generatePair(CryptoAlgorithmIdentifier::RSAES_PKCS1_v1_5, rsaParameters.hash, rsaParameters.hasHash, rsaParameters.modulusLength, rsaParameters.publicExponent, extractable, usages, WTFMove(keyPairCallback), WTFMove(failureCallback), context);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void CryptoAlgorithmRSAES_PKCS1_v1_5::importKey(const CryptoAlgorithmParametersDeprecated&amp; parameters, const CryptoKeyData&amp; keyData, bool extractable, CryptoKeyUsage usage, KeyCallback&amp;&amp; callback, VoidCallback&amp;&amp; failureCallback, ExceptionCode&amp;)
</span></span></pre></div>
<a id="trunkSourceWebCorecryptoalgorithmsCryptoAlgorithmRSAES_PKCS1_v1_5h"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmRSAES_PKCS1_v1_5.h (207808 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmRSAES_PKCS1_v1_5.h        2016-10-25 05:26:35 UTC (rev 207808)
+++ trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmRSAES_PKCS1_v1_5.h        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -44,9 +44,12 @@
</span><span class="cx"> 
</span><span class="cx">     CryptoAlgorithmIdentifier identifier() const override;
</span><span class="cx"> 
</span><ins>+    void generateKey(const std::unique_ptr&lt;CryptoAlgorithmParameters&gt;&amp;&amp;, bool extractable, CryptoKeyUsage, KeyOrKeyPairCallback&amp;&amp;, ExceptionCallback&amp;&amp;, ScriptExecutionContext*) final;
+
+    // The following will be deprecated.
</ins><span class="cx">     void encrypt(const CryptoAlgorithmParametersDeprecated&amp;, const CryptoKey&amp;, const CryptoOperationData&amp;, VectorCallback&amp;&amp;, VoidCallback&amp;&amp; failureCallback, ExceptionCode&amp;) override;
</span><span class="cx">     void decrypt(const CryptoAlgorithmParametersDeprecated&amp;, const CryptoKey&amp;, const CryptoOperationData&amp;, VectorCallback&amp;&amp;, VoidCallback&amp;&amp; failureCallback, ExceptionCode&amp;) override;
</span><del>-    void generateKey(const CryptoAlgorithmParametersDeprecated&amp;, bool extractable, CryptoKeyUsage, KeyOrKeyPairCallback&amp;&amp;, VoidCallback&amp;&amp; failureCallback, ExceptionCode&amp;) override;
</del><ins>+    void generateKey(const CryptoAlgorithmParametersDeprecated&amp;, bool extractable, CryptoKeyUsage, KeyOrKeyPairCallback&amp;&amp;, VoidCallback&amp;&amp; failureCallback, ExceptionCode&amp;, ScriptExecutionContext*) override;
</ins><span class="cx">     void importKey(const CryptoAlgorithmParametersDeprecated&amp;, const CryptoKeyData&amp;, bool extractable, CryptoKeyUsage, KeyCallback&amp;&amp;, VoidCallback&amp;&amp; failureCallback, ExceptionCode&amp;) override;
</span><span class="cx"> 
</span><span class="cx"> private:
</span></span></pre></div>
<a id="trunkSourceWebCorecryptoalgorithmsCryptoAlgorithmRSASSA_PKCS1_v1_5cpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.cpp (207808 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.cpp        2016-10-25 05:26:35 UTC (rev 207808)
+++ trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.cpp        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -28,10 +28,12 @@
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(SUBTLE_CRYPTO)
</span><span class="cx"> 
</span><ins>+#include &quot;CryptoAlgorithmRsaHashedKeyGenParams.h&quot;
</ins><span class="cx"> #include &quot;CryptoAlgorithmRsaKeyGenParamsDeprecated.h&quot;
</span><span class="cx"> #include &quot;CryptoAlgorithmRsaKeyParamsWithHashDeprecated.h&quot;
</span><span class="cx"> #include &quot;CryptoAlgorithmRsaSsaParamsDeprecated.h&quot;
</span><span class="cx"> #include &quot;CryptoKeyDataRSAComponents.h&quot;
</span><ins>+#include &quot;CryptoKeyPair.h&quot;
</ins><span class="cx"> #include &quot;CryptoKeyRSA.h&quot;
</span><span class="cx"> #include &quot;ExceptionCode.h&quot;
</span><span class="cx"> 
</span><span class="lines">@@ -69,6 +71,26 @@
</span><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+void CryptoAlgorithmRSASSA_PKCS1_v1_5::generateKey(const std::unique_ptr&lt;CryptoAlgorithmParameters&gt;&amp;&amp; parameters, bool extractable, CryptoKeyUsage usages, KeyOrKeyPairCallback&amp;&amp; callback, ExceptionCallback&amp;&amp; exceptionCallback, ScriptExecutionContext* context)
+{
+    const auto&amp; rsaParameters = downcast&lt;CryptoAlgorithmRsaHashedKeyGenParams&gt;(*parameters);
+
+    if (usages &amp; (CryptoKeyUsageDecrypt | CryptoKeyUsageEncrypt | CryptoKeyUsageDeriveKey | CryptoKeyUsageDeriveBits | CryptoKeyUsageWrapKey | CryptoKeyUsageUnwrapKey)) {
+        exceptionCallback(SYNTAX_ERR);
+        return;
+    }
+
+    auto keyPairCallback = [capturedCallback = WTFMove(callback)](CryptoKeyPair&amp; pair) {
+        pair.publicKey()-&gt;setUsagesBitmap(pair.publicKey()-&gt;usagesBitmap() &amp; CryptoKeyUsageVerify);
+        pair.privateKey()-&gt;setUsagesBitmap(pair.privateKey()-&gt;usagesBitmap() &amp; CryptoKeyUsageSign);
+        capturedCallback(nullptr, &amp;pair);
+    };
+    auto failureCallback = [capturedCallback = WTFMove(exceptionCallback)]() {
+        capturedCallback(OperationError);
+    };
+    CryptoKeyRSA::generatePair(CryptoAlgorithmIdentifier::RSASSA_PKCS1_v1_5, rsaParameters.hashIdentifier, true, rsaParameters.modulusLength, rsaParameters.publicExponentVector(), extractable, usages, WTFMove(keyPairCallback), WTFMove(failureCallback), context);
+}
+
</ins><span class="cx"> void CryptoAlgorithmRSASSA_PKCS1_v1_5::sign(const CryptoAlgorithmParametersDeprecated&amp; parameters, const CryptoKey&amp; key, const CryptoOperationData&amp; data, VectorCallback&amp;&amp; callback, VoidCallback&amp;&amp; failureCallback, ExceptionCode&amp; ec)
</span><span class="cx"> {
</span><span class="cx">     const CryptoAlgorithmRsaSsaParamsDeprecated&amp; rsaSSAParameters = downcast&lt;CryptoAlgorithmRsaSsaParamsDeprecated&gt;(parameters);
</span><span class="lines">@@ -93,15 +115,15 @@
</span><span class="cx">     platformVerify(rsaSSAParameters,  downcast&lt;CryptoKeyRSA&gt;(key), signature, data, WTFMove(callback), WTFMove(failureCallback), ec);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void CryptoAlgorithmRSASSA_PKCS1_v1_5::generateKey(const CryptoAlgorithmParametersDeprecated&amp; parameters, bool extractable, CryptoKeyUsage usages, KeyOrKeyPairCallback&amp;&amp; callback, VoidCallback&amp;&amp; failureCallback, ExceptionCode&amp;)
</del><ins>+void CryptoAlgorithmRSASSA_PKCS1_v1_5::generateKey(const CryptoAlgorithmParametersDeprecated&amp; parameters, bool extractable, CryptoKeyUsage usages, KeyOrKeyPairCallback&amp;&amp; callback, VoidCallback&amp;&amp; failureCallback, ExceptionCode&amp;, ScriptExecutionContext* context)
</ins><span class="cx"> {
</span><span class="cx">     const CryptoAlgorithmRsaKeyGenParamsDeprecated&amp; rsaParameters = downcast&lt;CryptoAlgorithmRsaKeyGenParamsDeprecated&gt;(parameters);
</span><span class="cx"> 
</span><del>-    auto keyPairCallback = [callback](CryptoKeyPair&amp; pair) {
-        callback(nullptr, &amp;pair);
</del><ins>+    auto keyPairCallback = [capturedCallback = WTFMove(callback)](CryptoKeyPair&amp; pair) {
+        capturedCallback(nullptr, &amp;pair);
</ins><span class="cx">     };
</span><span class="cx"> 
</span><del>-    CryptoKeyRSA::generatePair(CryptoAlgorithmIdentifier::RSASSA_PKCS1_v1_5, rsaParameters.hash, rsaParameters.hasHash, rsaParameters.modulusLength, rsaParameters.publicExponent, extractable, usages, WTFMove(keyPairCallback), WTFMove(failureCallback));
</del><ins>+    CryptoKeyRSA::generatePair(CryptoAlgorithmIdentifier::RSASSA_PKCS1_v1_5, rsaParameters.hash, rsaParameters.hasHash, rsaParameters.modulusLength, rsaParameters.publicExponent, extractable, usages, WTFMove(keyPairCallback), WTFMove(failureCallback), context);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void CryptoAlgorithmRSASSA_PKCS1_v1_5::importKey(const CryptoAlgorithmParametersDeprecated&amp; parameters, const CryptoKeyData&amp; keyData, bool extractable, CryptoKeyUsage usage, KeyCallback&amp;&amp; callback, VoidCallback&amp;&amp; failureCallback, ExceptionCode&amp;)
</span></span></pre></div>
<a id="trunkSourceWebCorecryptoalgorithmsCryptoAlgorithmRSASSA_PKCS1_v1_5h"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.h (207808 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.h        2016-10-25 05:26:35 UTC (rev 207808)
+++ trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.h        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -44,9 +44,12 @@
</span><span class="cx"> 
</span><span class="cx">     CryptoAlgorithmIdentifier identifier() const override;
</span><span class="cx"> 
</span><ins>+    void generateKey(const std::unique_ptr&lt;CryptoAlgorithmParameters&gt;&amp;&amp;, bool extractable, CryptoKeyUsage, KeyOrKeyPairCallback&amp;&amp;, ExceptionCallback&amp;&amp;, ScriptExecutionContext*) final;
+
+    // The following will be deprecated.
</ins><span class="cx">     void sign(const CryptoAlgorithmParametersDeprecated&amp;, const CryptoKey&amp;, const CryptoOperationData&amp;, VectorCallback&amp;&amp;, VoidCallback&amp;&amp; failureCallback, ExceptionCode&amp;) override;
</span><span class="cx">     void verify(const CryptoAlgorithmParametersDeprecated&amp;, const CryptoKey&amp;, const CryptoOperationData&amp; signature, const CryptoOperationData&amp;, BoolCallback&amp;&amp;, VoidCallback&amp;&amp; failureCallback, ExceptionCode&amp;) override;
</span><del>-    void generateKey(const CryptoAlgorithmParametersDeprecated&amp;, bool extractable, CryptoKeyUsage, KeyOrKeyPairCallback&amp;&amp;, VoidCallback&amp;&amp; failureCallback, ExceptionCode&amp;) override;
</del><ins>+    void generateKey(const CryptoAlgorithmParametersDeprecated&amp;, bool extractable, CryptoKeyUsage, KeyOrKeyPairCallback&amp;&amp;, VoidCallback&amp;&amp; failureCallback, ExceptionCode&amp;, ScriptExecutionContext*) override;
</ins><span class="cx">     void importKey(const CryptoAlgorithmParametersDeprecated&amp;, const CryptoKeyData&amp;, bool extractable, CryptoKeyUsage, KeyCallback&amp;&amp;, VoidCallback&amp;&amp; failureCallback, ExceptionCode&amp;) override;
</span><span class="cx"> 
</span><span class="cx"> private:
</span></span></pre></div>
<a id="trunkSourceWebCorecryptoalgorithmsCryptoAlgorithmRSA_OAEPcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmRSA_OAEP.cpp (207808 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmRSA_OAEP.cpp        2016-10-25 05:26:35 UTC (rev 207808)
+++ trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmRSA_OAEP.cpp        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -28,10 +28,12 @@
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(SUBTLE_CRYPTO)
</span><span class="cx"> 
</span><ins>+#include &quot;CryptoAlgorithmRsaHashedKeyGenParams.h&quot;
</ins><span class="cx"> #include &quot;CryptoAlgorithmRsaKeyGenParamsDeprecated.h&quot;
</span><span class="cx"> #include &quot;CryptoAlgorithmRsaKeyParamsWithHashDeprecated.h&quot;
</span><span class="cx"> #include &quot;CryptoAlgorithmRsaOaepParamsDeprecated.h&quot;
</span><span class="cx"> #include &quot;CryptoKeyDataRSAComponents.h&quot;
</span><ins>+#include &quot;CryptoKeyPair.h&quot;
</ins><span class="cx"> #include &quot;CryptoKeyRSA.h&quot;
</span><span class="cx"> #include &quot;ExceptionCode.h&quot;
</span><span class="cx"> 
</span><span class="lines">@@ -69,6 +71,26 @@
</span><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+void CryptoAlgorithmRSA_OAEP::generateKey(const std::unique_ptr&lt;CryptoAlgorithmParameters&gt;&amp;&amp; parameters, bool extractable, CryptoKeyUsage usages, KeyOrKeyPairCallback&amp;&amp; callback, ExceptionCallback&amp;&amp; exceptionCallback, ScriptExecutionContext* context)
+{
+    const auto&amp; rsaParameters = downcast&lt;CryptoAlgorithmRsaHashedKeyGenParams&gt;(*parameters);
+
+    if (usages &amp; (CryptoKeyUsageSign | CryptoKeyUsageVerify | CryptoKeyUsageDeriveKey | CryptoKeyUsageDeriveBits)) {
+        exceptionCallback(SYNTAX_ERR);
+        return;
+    }
+
+    auto keyPairCallback = [capturedCallback = WTFMove(callback)](CryptoKeyPair&amp; pair) {
+        pair.publicKey()-&gt;setUsagesBitmap(pair.publicKey()-&gt;usagesBitmap() &amp; (CryptoKeyUsageEncrypt | CryptoKeyUsageWrapKey));
+        pair.privateKey()-&gt;setUsagesBitmap(pair.privateKey()-&gt;usagesBitmap() &amp; (CryptoKeyUsageDecrypt | CryptoKeyUsageUnwrapKey));
+        capturedCallback(nullptr, &amp;pair);
+    };
+    auto failureCallback = [capturedCallback = WTFMove(exceptionCallback)]() {
+        capturedCallback(OperationError);
+    };
+    CryptoKeyRSA::generatePair(CryptoAlgorithmIdentifier::RSA_OAEP, rsaParameters.hashIdentifier, true, rsaParameters.modulusLength, rsaParameters.publicExponentVector(), extractable, usages, WTFMove(keyPairCallback), WTFMove(failureCallback), context);
+}
+
</ins><span class="cx"> void CryptoAlgorithmRSA_OAEP::encrypt(const CryptoAlgorithmParametersDeprecated&amp; parameters, const CryptoKey&amp; key, const CryptoOperationData&amp; data, VectorCallback&amp;&amp; callback, VoidCallback&amp;&amp; failureCallback, ExceptionCode&amp; ec)
</span><span class="cx"> {
</span><span class="cx">     const CryptoAlgorithmRsaOaepParamsDeprecated&amp; rsaOAEPParameters = downcast&lt;CryptoAlgorithmRsaOaepParamsDeprecated&gt;(parameters);
</span><span class="lines">@@ -93,15 +115,15 @@
</span><span class="cx">     platformDecrypt(rsaOAEPParameters, downcast&lt;CryptoKeyRSA&gt;(key), data, WTFMove(callback), WTFMove(failureCallback), ec);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void CryptoAlgorithmRSA_OAEP::generateKey(const CryptoAlgorithmParametersDeprecated&amp; parameters, bool extractable, CryptoKeyUsage usages, KeyOrKeyPairCallback&amp;&amp; callback, VoidCallback&amp;&amp; failureCallback, ExceptionCode&amp;)
</del><ins>+void CryptoAlgorithmRSA_OAEP::generateKey(const CryptoAlgorithmParametersDeprecated&amp; parameters, bool extractable, CryptoKeyUsage usages, KeyOrKeyPairCallback&amp;&amp; callback, VoidCallback&amp;&amp; failureCallback, ExceptionCode&amp;, ScriptExecutionContext* context)
</ins><span class="cx"> {
</span><span class="cx">     const CryptoAlgorithmRsaKeyGenParamsDeprecated&amp; rsaParameters = downcast&lt;CryptoAlgorithmRsaKeyGenParamsDeprecated&gt;(parameters);
</span><span class="cx"> 
</span><del>-    auto keyPairCallback = [callback](CryptoKeyPair&amp; pair) {
-        callback(nullptr, &amp;pair);
</del><ins>+    auto keyPairCallback = [capturedCallback = WTFMove(callback)](CryptoKeyPair&amp; pair) {
+        capturedCallback(nullptr, &amp;pair);
</ins><span class="cx">     };
</span><span class="cx"> 
</span><del>-    CryptoKeyRSA::generatePair(CryptoAlgorithmIdentifier::RSA_OAEP, rsaParameters.hash, rsaParameters.hasHash, rsaParameters.modulusLength, rsaParameters.publicExponent, extractable, usages, WTFMove(keyPairCallback), WTFMove(failureCallback));
</del><ins>+    CryptoKeyRSA::generatePair(CryptoAlgorithmIdentifier::RSA_OAEP, rsaParameters.hash, rsaParameters.hasHash, rsaParameters.modulusLength, rsaParameters.publicExponent, extractable, usages, WTFMove(keyPairCallback), WTFMove(failureCallback), context);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void CryptoAlgorithmRSA_OAEP::importKey(const CryptoAlgorithmParametersDeprecated&amp; parameters, const CryptoKeyData&amp; keyData, bool extractable, CryptoKeyUsage usage, KeyCallback&amp;&amp; callback, VoidCallback&amp;&amp; failureCallback, ExceptionCode&amp;)
</span></span></pre></div>
<a id="trunkSourceWebCorecryptoalgorithmsCryptoAlgorithmRSA_OAEPh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmRSA_OAEP.h (207808 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmRSA_OAEP.h        2016-10-25 05:26:35 UTC (rev 207808)
+++ trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmRSA_OAEP.h        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -44,9 +44,12 @@
</span><span class="cx"> 
</span><span class="cx">     CryptoAlgorithmIdentifier identifier() const override;
</span><span class="cx"> 
</span><ins>+    void generateKey(const std::unique_ptr&lt;CryptoAlgorithmParameters&gt;&amp;&amp;, bool extractable, CryptoKeyUsage, KeyOrKeyPairCallback&amp;&amp;, ExceptionCallback&amp;&amp;, ScriptExecutionContext*) final;
+
+    // The following will be deprecated.
</ins><span class="cx">     void encrypt(const CryptoAlgorithmParametersDeprecated&amp;, const CryptoKey&amp;, const CryptoOperationData&amp;, VectorCallback&amp;&amp;, VoidCallback&amp;&amp; failureCallback, ExceptionCode&amp;) override;
</span><span class="cx">     void decrypt(const CryptoAlgorithmParametersDeprecated&amp;, const CryptoKey&amp;, const CryptoOperationData&amp;, VectorCallback&amp;&amp;, VoidCallback&amp;&amp; failureCallback, ExceptionCode&amp;) override;
</span><del>-    void generateKey(const CryptoAlgorithmParametersDeprecated&amp;, bool extractable, CryptoKeyUsage, KeyOrKeyPairCallback&amp;&amp;, VoidCallback&amp;&amp; failureCallback, ExceptionCode&amp;) override;
</del><ins>+    void generateKey(const CryptoAlgorithmParametersDeprecated&amp;, bool extractable, CryptoKeyUsage, KeyOrKeyPairCallback&amp;&amp;, VoidCallback&amp;&amp; failureCallback, ExceptionCode&amp;, ScriptExecutionContext*) override;
</ins><span class="cx">     void importKey(const CryptoAlgorithmParametersDeprecated&amp;, const CryptoKeyData&amp;, bool extractable, CryptoKeyUsage, KeyCallback&amp;&amp;, VoidCallback&amp;&amp; failureCallback, ExceptionCode&amp;) override;
</span><span class="cx"> 
</span><span class="cx"> private:
</span></span></pre></div>
<a id="trunkSourceWebCorecryptognutlsCryptoKeyRSAGnuTLScpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/crypto/gnutls/CryptoKeyRSAGnuTLS.cpp (207808 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/crypto/gnutls/CryptoKeyRSAGnuTLS.cpp        2016-10-25 05:26:35 UTC (rev 207808)
+++ trunk/Source/WebCore/crypto/gnutls/CryptoKeyRSAGnuTLS.cpp        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -95,7 +95,7 @@
</span><span class="cx">     return nullptr;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void CryptoKeyRSA::generatePair(CryptoAlgorithmIdentifier algorithm, CryptoAlgorithmIdentifier hash, bool hasHash, unsigned modulusLength, const Vector&lt;uint8_t&gt;&amp; publicExponent, bool extractable, CryptoKeyUsage usage, KeyPairCallback callback, VoidCallback failureCallback)
</del><ins>+void CryptoKeyRSA::generatePair(CryptoAlgorithmIdentifier algorithm, CryptoAlgorithmIdentifier hash, bool hasHash, unsigned modulusLength, const Vector&lt;uint8_t&gt;&amp; publicExponent, bool extractable, CryptoKeyUsage usage, KeyPairCallback callback, VoidCallback failureCallback, ScriptExecutionContext* context)
</ins><span class="cx"> {
</span><span class="cx">     notImplemented();
</span><span class="cx">     failureCallback();
</span><span class="lines">@@ -108,6 +108,7 @@
</span><span class="cx">     UNUSED_PARAM(extractable);
</span><span class="cx">     UNUSED_PARAM(usage);
</span><span class="cx">     UNUSED_PARAM(callback);
</span><ins>+    UNUSED_PARAM(context);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCorecryptokeysCryptoKeyAEScpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/crypto/keys/CryptoKeyAES.cpp (207808 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/crypto/keys/CryptoKeyAES.cpp        2016-10-25 05:26:35 UTC (rev 207808)
+++ trunk/Source/WebCore/crypto/keys/CryptoKeyAES.cpp        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -57,7 +57,7 @@
</span><span class="cx"> 
</span><span class="cx"> RefPtr&lt;CryptoKeyAES&gt; CryptoKeyAES::generate(CryptoAlgorithmIdentifier algorithm, size_t lengthBits, bool extractable, CryptoKeyUsage usages)
</span><span class="cx"> {
</span><del>-    if (lengthBits % 8)
</del><ins>+    if ((lengthBits != 128) &amp;&amp; (lengthBits != 192) &amp;&amp; (lengthBits != 256))
</ins><span class="cx">         return nullptr;
</span><span class="cx">     return adoptRef(new CryptoKeyAES(algorithm, randomData(lengthBits / 8), extractable, usages));
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorecryptokeysCryptoKeyHMACcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/crypto/keys/CryptoKeyHMAC.cpp (207808 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/crypto/keys/CryptoKeyHMAC.cpp        2016-10-25 05:26:35 UTC (rev 207808)
+++ trunk/Source/WebCore/crypto/keys/CryptoKeyHMAC.cpp        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -45,18 +45,18 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-RefPtr&lt;CryptoKeyHMAC&gt; CryptoKeyHMAC::generate(size_t lengthBytes, CryptoAlgorithmIdentifier hash, bool extractable, CryptoKeyUsage usages)
</del><ins>+RefPtr&lt;CryptoKeyHMAC&gt; CryptoKeyHMAC::generate(size_t lengthBits, CryptoAlgorithmIdentifier hash, bool extractable, CryptoKeyUsage usages)
</ins><span class="cx"> {
</span><del>-    if (!lengthBytes) {
</del><ins>+    if (!lengthBits) {
</ins><span class="cx">         switch (hash) {
</span><span class="cx">         case CryptoAlgorithmIdentifier::SHA_1:
</span><span class="cx">         case CryptoAlgorithmIdentifier::SHA_224:
</span><span class="cx">         case CryptoAlgorithmIdentifier::SHA_256:
</span><del>-            lengthBytes = 64;
</del><ins>+            lengthBits = 512;
</ins><span class="cx">             break;
</span><span class="cx">         case CryptoAlgorithmIdentifier::SHA_384:
</span><span class="cx">         case CryptoAlgorithmIdentifier::SHA_512:
</span><del>-            lengthBytes = 128;
</del><ins>+            lengthBits = 1024;
</ins><span class="cx">             break;
</span><span class="cx">         default:
</span><span class="cx">             return nullptr;
</span><span class="lines">@@ -63,7 +63,7 @@
</span><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    return adoptRef(new CryptoKeyHMAC(randomData(lengthBytes), hash, extractable, usages));
</del><ins>+    return adoptRef(new CryptoKeyHMAC(randomData(lengthBits), hash, extractable, usages));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> std::unique_ptr&lt;KeyAlgorithm&gt; CryptoKeyHMAC::buildAlgorithm() const
</span></span></pre></div>
<a id="trunkSourceWebCorecryptokeysCryptoKeyRSAh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/crypto/keys/CryptoKeyRSA.h (207808 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/crypto/keys/CryptoKeyRSA.h        2016-10-25 05:26:35 UTC (rev 207808)
+++ trunk/Source/WebCore/crypto/keys/CryptoKeyRSA.h        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -27,7 +27,7 @@
</span><span class="cx"> #define CryptoKeyRSA_h
</span><span class="cx"> 
</span><span class="cx"> #include &quot;CryptoKey.h&quot;
</span><del>-#include &lt;functional&gt;
</del><ins>+#include &lt;wtf/Function.h&gt;
</ins><span class="cx"> 
</span><span class="cx"> #if ENABLE(SUBTLE_CRYPTO)
</span><span class="cx"> 
</span><span class="lines">@@ -46,6 +46,7 @@
</span><span class="cx"> class CryptoKeyDataRSAComponents;
</span><span class="cx"> class CryptoKeyPair;
</span><span class="cx"> class PromiseWrapper;
</span><ins>+class ScriptExecutionContext;
</ins><span class="cx"> 
</span><span class="cx"> class RsaKeyAlgorithm : public KeyAlgorithm {
</span><span class="cx"> public:
</span><span class="lines">@@ -95,9 +96,9 @@
</span><span class="cx"> 
</span><span class="cx">     size_t keySizeInBits() const;
</span><span class="cx"> 
</span><del>-    typedef std::function&lt;void(CryptoKeyPair&amp;)&gt; KeyPairCallback;
-    typedef std::function&lt;void()&gt; VoidCallback;
-    static void generatePair(CryptoAlgorithmIdentifier, CryptoAlgorithmIdentifier hash, bool hasHash, unsigned modulusLength, const Vector&lt;uint8_t&gt;&amp; publicExponent, bool extractable, CryptoKeyUsage, KeyPairCallback, VoidCallback failureCallback);
</del><ins>+    using KeyPairCallback = WTF::Function&lt;void(CryptoKeyPair&amp;)&gt;;
+    using VoidCallback = WTF::Function&lt;void()&gt;;
+    static void generatePair(CryptoAlgorithmIdentifier, CryptoAlgorithmIdentifier hash, bool hasHash, unsigned modulusLength, const Vector&lt;uint8_t&gt;&amp; publicExponent, bool extractable, CryptoKeyUsage, KeyPairCallback, VoidCallback failureCallback, ScriptExecutionContext*);
</ins><span class="cx"> 
</span><span class="cx">     PlatformRSAKey platformKey() const { return m_platformKey; }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorecryptomacCryptoKeyRSAMaccpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/crypto/mac/CryptoKeyRSAMac.cpp (207808 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/crypto/mac/CryptoKeyRSAMac.cpp        2016-10-25 05:26:35 UTC (rev 207808)
+++ trunk/Source/WebCore/crypto/mac/CryptoKeyRSAMac.cpp        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -32,6 +32,7 @@
</span><span class="cx"> #include &quot;CryptoAlgorithmRegistry.h&quot;
</span><span class="cx"> #include &quot;CryptoKeyDataRSAComponents.h&quot;
</span><span class="cx"> #include &quot;CryptoKeyPair.h&quot;
</span><ins>+#include &quot;ScriptExecutionContext.h&quot;
</ins><span class="cx"> #include &lt;wtf/MainThread.h&gt;
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="lines">@@ -229,7 +230,7 @@
</span><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void CryptoKeyRSA::generatePair(CryptoAlgorithmIdentifier algorithm, CryptoAlgorithmIdentifier hash, bool hasHash, unsigned modulusLength, const Vector&lt;uint8_t&gt;&amp; publicExponent, bool extractable, CryptoKeyUsage usage, KeyPairCallback callback, VoidCallback failureCallback)
</del><ins>+void CryptoKeyRSA::generatePair(CryptoAlgorithmIdentifier algorithm, CryptoAlgorithmIdentifier hash, bool hasHash, unsigned modulusLength, const Vector&lt;uint8_t&gt;&amp; publicExponent, bool extractable, CryptoKeyUsage usage, KeyPairCallback callback, VoidCallback failureCallback, ScriptExecutionContext* context)
</ins><span class="cx"> {
</span><span class="cx">     uint32_t e;
</span><span class="cx">     if (!bigIntegerToUInt32(publicExponent, e)) {
</span><span class="lines">@@ -239,29 +240,33 @@
</span><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    // We only use the callback functions when back on the main thread, but captured variables are copied on a secondary thread too.
</del><ins>+    // We only use the callback functions when back on the main/worker thread, but captured variables are copied on a secondary thread too.
</ins><span class="cx">     KeyPairCallback* localCallback = new KeyPairCallback(WTFMove(callback));
</span><span class="cx">     VoidCallback* localFailureCallback = new VoidCallback(WTFMove(failureCallback));
</span><ins>+    context-&gt;ref();
</ins><span class="cx"> 
</span><span class="cx">     dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
</span><ins>+        ASSERT(context);
</ins><span class="cx">         CCRSACryptorRef ccPublicKey;
</span><span class="cx">         CCRSACryptorRef ccPrivateKey;
</span><span class="cx">         CCCryptorStatus status = CCRSACryptorGeneratePair(modulusLength, e, &amp;ccPublicKey, &amp;ccPrivateKey);
</span><span class="cx">         if (status) {
</span><span class="cx">             WTFLogAlways(&quot;Could not generate a key pair, status %d&quot;, status);
</span><del>-            callOnWebThreadOrDispatchAsyncOnMainThread(^{
</del><ins>+            context-&gt;postTask([localCallback, localFailureCallback](ScriptExecutionContext&amp; context) {
</ins><span class="cx">                 (*localFailureCallback)();
</span><span class="cx">                 delete localCallback;
</span><span class="cx">                 delete localFailureCallback;
</span><ins>+                context.deref();
</ins><span class="cx">             });
</span><span class="cx">             return;
</span><span class="cx">         }
</span><del>-        callOnWebThreadOrDispatchAsyncOnMainThread(^{
</del><ins>+        context-&gt;postTask([algorithm, hash, hasHash, extractable, usage, localCallback, localFailureCallback, ccPublicKey, ccPrivateKey](ScriptExecutionContext&amp; context) {
</ins><span class="cx">             auto publicKey = CryptoKeyRSA::create(algorithm, hash, hasHash, CryptoKeyType::Public, ccPublicKey, true, usage);
</span><span class="cx">             auto privateKey = CryptoKeyRSA::create(algorithm, hash, hasHash, CryptoKeyType::Private, ccPrivateKey, extractable, usage);
</span><span class="cx">             (*localCallback)(CryptoKeyPair::create(WTFMove(publicKey), WTFMove(privateKey)));
</span><span class="cx">             delete localCallback;
</span><span class="cx">             delete localFailureCallback;
</span><ins>+            context.deref();
</ins><span class="cx">         });
</span><span class="cx">     });
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorecryptoparametersAesKeyGenParamsidlfromrev207808trunkSourceWebCorecryptoCryptoKeyPairidl"></a>
<div class="copfile"><h4>Copied: trunk/Source/WebCore/crypto/parameters/AesKeyGenParams.idl (from rev 207808, trunk/Source/WebCore/crypto/CryptoKeyPair.idl) (0 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/crypto/parameters/AesKeyGenParams.idl                                (rev 0)
+++ trunk/Source/WebCore/crypto/parameters/AesKeyGenParams.idl        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -0,0 +1,32 @@
</span><ins>+/*
+ * Copyright (C) 2016 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+[
+    Conditional=SUBTLE_CRYPTO,
+    ImplementedAs=CryptoAlgorithmAesKeyGenParams
+] dictionary AesKeyGenParams : CryptoAlgorithmParameters {
+    // The length, in bits, of the key.
+    [EnforceRange] required unsigned short length;
+};
</ins></span></pre></div>
<a id="trunkSourceWebCorecryptoparametersCryptoAlgorithmAesCbcParamsDeprecatedh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/crypto/parameters/CryptoAlgorithmAesCbcParamsDeprecated.h (207808 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/crypto/parameters/CryptoAlgorithmAesCbcParamsDeprecated.h        2016-10-25 05:26:35 UTC (rev 207808)
+++ trunk/Source/WebCore/crypto/parameters/CryptoAlgorithmAesCbcParamsDeprecated.h        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -42,6 +42,6 @@
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span><span class="cx"> 
</span><del>-SPECIALIZE_TYPE_TRAITS_CRYPTO_ALGORITHM_PARAMETERS(AesCbcParams)
</del><ins>+SPECIALIZE_TYPE_TRAITS_CRYPTO_ALGORITHM_PARAMETERS_DEPRECATED(AesCbcParams)
</ins><span class="cx"> 
</span><span class="cx"> #endif // ENABLE(SUBTLE_CRYPTO)
</span></span></pre></div>
<a id="trunkSourceWebCorecryptoparametersCryptoAlgorithmAesKeyGenParamshfromrev207808trunkSourceWebCorecryptoparametersCryptoAlgorithmAesKeyGenParamsDeprecatedh"></a>
<div class="copfile"><h4>Copied: trunk/Source/WebCore/crypto/parameters/CryptoAlgorithmAesKeyGenParams.h (from rev 207808, trunk/Source/WebCore/crypto/parameters/CryptoAlgorithmAesKeyGenParamsDeprecated.h) (0 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/crypto/parameters/CryptoAlgorithmAesKeyGenParams.h                                (rev 0)
+++ trunk/Source/WebCore/crypto/parameters/CryptoAlgorithmAesKeyGenParams.h        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -0,0 +1,45 @@
</span><ins>+/*
+ * Copyright (C) 2016 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#pragma once
+
+#include &quot;CryptoAlgorithmParameters.h&quot;
+
+#if ENABLE(SUBTLE_CRYPTO)
+
+namespace WebCore {
+
+class CryptoAlgorithmAesKeyGenParams final : public CryptoAlgorithmParameters {
+public:
+    unsigned short length;
+
+    Class parametersClass() const final { return Class::AesKeyGenParams; }
+};
+
+} // namespace WebCore
+
+SPECIALIZE_TYPE_TRAITS_CRYPTO_ALGORITHM_PARAMETERS(AesKeyGenParams)
+
+#endif // ENABLE(SUBTLE_CRYPTO)
</ins></span></pre></div>
<a id="trunkSourceWebCorecryptoparametersCryptoAlgorithmAesKeyGenParamsDeprecatedh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/crypto/parameters/CryptoAlgorithmAesKeyGenParamsDeprecated.h (207808 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/crypto/parameters/CryptoAlgorithmAesKeyGenParamsDeprecated.h        2016-10-25 05:26:35 UTC (rev 207808)
+++ trunk/Source/WebCore/crypto/parameters/CryptoAlgorithmAesKeyGenParamsDeprecated.h        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -41,6 +41,6 @@
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span><span class="cx"> 
</span><del>-SPECIALIZE_TYPE_TRAITS_CRYPTO_ALGORITHM_PARAMETERS(AesKeyGenParams)
</del><ins>+SPECIALIZE_TYPE_TRAITS_CRYPTO_ALGORITHM_PARAMETERS_DEPRECATED(AesKeyGenParams)
</ins><span class="cx"> 
</span><span class="cx"> #endif // ENABLE(SUBTLE_CRYPTO)
</span></span></pre></div>
<a id="trunkSourceWebCorecryptoparametersCryptoAlgorithmHmacKeyGenParamshfromrev207808trunkSourceWebCorecryptoparametersCryptoAlgorithmAesKeyGenParamsDeprecatedh"></a>
<div class="copfile"><h4>Copied: trunk/Source/WebCore/crypto/parameters/CryptoAlgorithmHmacKeyGenParams.h (from rev 207808, trunk/Source/WebCore/crypto/parameters/CryptoAlgorithmAesKeyGenParamsDeprecated.h) (0 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/crypto/parameters/CryptoAlgorithmHmacKeyGenParams.h                                (rev 0)
+++ trunk/Source/WebCore/crypto/parameters/CryptoAlgorithmHmacKeyGenParams.h        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -0,0 +1,49 @@
</span><ins>+/*
+ * Copyright (C) 2016 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#pragma once
+
+#include &quot;CryptoAlgorithmParameters.h&quot;
+#include &lt;runtime/JSCJSValue.h&gt;
+
+#if ENABLE(SUBTLE_CRYPTO)
+
+namespace WebCore {
+
+class CryptoAlgorithmHmacKeyGenParams final : public CryptoAlgorithmParameters {
+public:
+    // FIXME: Consider merging hash and hashIdentifier.
+    JSC::JSValue hash;
+    CryptoAlgorithmIdentifier hashIdentifier;
+    Optional&lt;unsigned long&gt; length;
+
+    Class parametersClass() const final { return Class::HmacKeyGenParams; }
+};
+
+} // namespace WebCore
+
+SPECIALIZE_TYPE_TRAITS_CRYPTO_ALGORITHM_PARAMETERS(HmacKeyGenParams)
+
+#endif // ENABLE(SUBTLE_CRYPTO)
</ins></span></pre></div>
<a id="trunkSourceWebCorecryptoparametersCryptoAlgorithmHmacKeyParamsDeprecatedh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/crypto/parameters/CryptoAlgorithmHmacKeyParamsDeprecated.h (207808 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/crypto/parameters/CryptoAlgorithmHmacKeyParamsDeprecated.h        2016-10-25 05:26:35 UTC (rev 207808)
+++ trunk/Source/WebCore/crypto/parameters/CryptoAlgorithmHmacKeyParamsDeprecated.h        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -52,6 +52,6 @@
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span><span class="cx"> 
</span><del>-SPECIALIZE_TYPE_TRAITS_CRYPTO_ALGORITHM_PARAMETERS(HmacKeyParams)
</del><ins>+SPECIALIZE_TYPE_TRAITS_CRYPTO_ALGORITHM_PARAMETERS_DEPRECATED(HmacKeyParams)
</ins><span class="cx"> 
</span><span class="cx"> #endif // ENABLE(SUBTLE_CRYPTO)
</span></span></pre></div>
<a id="trunkSourceWebCorecryptoparametersCryptoAlgorithmHmacParamsDeprecatedh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/crypto/parameters/CryptoAlgorithmHmacParamsDeprecated.h (207808 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/crypto/parameters/CryptoAlgorithmHmacParamsDeprecated.h        2016-10-25 05:26:35 UTC (rev 207808)
+++ trunk/Source/WebCore/crypto/parameters/CryptoAlgorithmHmacParamsDeprecated.h        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -42,6 +42,6 @@
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span><span class="cx"> 
</span><del>-SPECIALIZE_TYPE_TRAITS_CRYPTO_ALGORITHM_PARAMETERS(HmacParams)
</del><ins>+SPECIALIZE_TYPE_TRAITS_CRYPTO_ALGORITHM_PARAMETERS_DEPRECATED(HmacParams)
</ins><span class="cx"> 
</span><span class="cx"> #endif // ENABLE(SUBTLE_CRYPTO)
</span></span></pre></div>
<a id="trunkSourceWebCorecryptoparametersCryptoAlgorithmRsaHashedKeyGenParamshfromrev207808trunkSourceWebCorecryptoparametersCryptoAlgorithmHmacParamsDeprecatedh"></a>
<div class="copfile"><h4>Copied: trunk/Source/WebCore/crypto/parameters/CryptoAlgorithmRsaHashedKeyGenParams.h (from rev 207808, trunk/Source/WebCore/crypto/parameters/CryptoAlgorithmHmacParamsDeprecated.h) (0 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/crypto/parameters/CryptoAlgorithmRsaHashedKeyGenParams.h                                (rev 0)
+++ trunk/Source/WebCore/crypto/parameters/CryptoAlgorithmRsaHashedKeyGenParams.h        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -0,0 +1,47 @@
</span><ins>+/*
+ * Copyright (C) 2016 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#pragma once
+
+#include &quot;CryptoAlgorithmRsaKeyGenParams.h&quot;
+
+#if ENABLE(SUBTLE_CRYPTO)
+
+namespace WebCore {
+
+class CryptoAlgorithmRsaHashedKeyGenParams final : public CryptoAlgorithmRsaKeyGenParams {
+public:
+    // FIXME: Consider merging hash and hashIdentifier.
+    JSC::JSValue hash;
+    CryptoAlgorithmIdentifier hashIdentifier;
+
+    Class parametersClass() const final { return Class::RsaHashedKeyGenParams; }
+};
+
+} // namespace WebCore
+
+SPECIALIZE_TYPE_TRAITS_CRYPTO_ALGORITHM_PARAMETERS(RsaHashedKeyGenParams)
+
+#endif // ENABLE(SUBTLE_CRYPTO)
</ins></span></pre></div>
<a id="trunkSourceWebCorecryptoparametersCryptoAlgorithmRsaKeyGenParamshfromrev207808trunkSourceWebCorecryptoparametersCryptoAlgorithmRsaKeyGenParamsDeprecatedh"></a>
<div class="copfile"><h4>Copied: trunk/Source/WebCore/crypto/parameters/CryptoAlgorithmRsaKeyGenParams.h (from rev 207808, trunk/Source/WebCore/crypto/parameters/CryptoAlgorithmRsaKeyGenParamsDeprecated.h) (0 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/crypto/parameters/CryptoAlgorithmRsaKeyGenParams.h                                (rev 0)
+++ trunk/Source/WebCore/crypto/parameters/CryptoAlgorithmRsaKeyGenParams.h        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -0,0 +1,59 @@
</span><ins>+/*
+ * Copyright (C) 2016 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#pragma once
+
+#include &quot;CryptoAlgorithmParameters.h&quot;
+#include &lt;runtime/Uint8Array.h&gt;
+#include &lt;wtf/Vector.h&gt;
+
+#if ENABLE(SUBTLE_CRYPTO)
+
+namespace WebCore {
+
+class CryptoAlgorithmRsaKeyGenParams : public CryptoAlgorithmParameters {
+public:
+    unsigned long modulusLength;
+    RefPtr&lt;Uint8Array&gt; publicExponent;
+
+    Class parametersClass() const override { return Class::RsaKeyGenParams; }
+
+    const Vector&lt;uint8_t&gt;&amp; publicExponentVector() const
+    {
+        if (!m_publicExponentVector.isEmpty() || !publicExponent-&gt;byteLength())
+            return m_publicExponentVector;
+
+        m_publicExponentVector.append(publicExponent-&gt;data(), publicExponent-&gt;byteLength());
+        return m_publicExponentVector;
+    }
+private:
+    mutable Vector&lt;uint8_t&gt; m_publicExponentVector;
+};
+
+} // namespace WebCore
+
+SPECIALIZE_TYPE_TRAITS_CRYPTO_ALGORITHM_PARAMETERS(RsaKeyGenParams)
+
+#endif // ENABLE(SUBTLE_CRYPTO)
</ins></span></pre></div>
<a id="trunkSourceWebCorecryptoparametersCryptoAlgorithmRsaKeyGenParamsDeprecatedh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/crypto/parameters/CryptoAlgorithmRsaKeyGenParamsDeprecated.h (207808 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/crypto/parameters/CryptoAlgorithmRsaKeyGenParamsDeprecated.h        2016-10-25 05:26:35 UTC (rev 207808)
+++ trunk/Source/WebCore/crypto/parameters/CryptoAlgorithmRsaKeyGenParamsDeprecated.h        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -51,6 +51,6 @@
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span><span class="cx"> 
</span><del>-SPECIALIZE_TYPE_TRAITS_CRYPTO_ALGORITHM_PARAMETERS(RsaKeyGenParams)
</del><ins>+SPECIALIZE_TYPE_TRAITS_CRYPTO_ALGORITHM_PARAMETERS_DEPRECATED(RsaKeyGenParams)
</ins><span class="cx"> 
</span><span class="cx"> #endif // ENABLE(SUBTLE_CRYPTO)
</span></span></pre></div>
<a id="trunkSourceWebCorecryptoparametersCryptoAlgorithmRsaKeyParamsWithHashDeprecatedh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/crypto/parameters/CryptoAlgorithmRsaKeyParamsWithHashDeprecated.h (207808 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/crypto/parameters/CryptoAlgorithmRsaKeyParamsWithHashDeprecated.h        2016-10-25 05:26:35 UTC (rev 207808)
+++ trunk/Source/WebCore/crypto/parameters/CryptoAlgorithmRsaKeyParamsWithHashDeprecated.h        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -51,6 +51,6 @@
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span><span class="cx"> 
</span><del>-SPECIALIZE_TYPE_TRAITS_CRYPTO_ALGORITHM_PARAMETERS(RsaKeyParamsWithHash)
</del><ins>+SPECIALIZE_TYPE_TRAITS_CRYPTO_ALGORITHM_PARAMETERS_DEPRECATED(RsaKeyParamsWithHash)
</ins><span class="cx"> 
</span><span class="cx"> #endif // ENABLE(SUBTLE_CRYPTO)
</span></span></pre></div>
<a id="trunkSourceWebCorecryptoparametersCryptoAlgorithmRsaOaepParamsDeprecatedh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/crypto/parameters/CryptoAlgorithmRsaOaepParamsDeprecated.h (207808 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/crypto/parameters/CryptoAlgorithmRsaOaepParamsDeprecated.h        2016-10-25 05:26:35 UTC (rev 207808)
+++ trunk/Source/WebCore/crypto/parameters/CryptoAlgorithmRsaOaepParamsDeprecated.h        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -52,6 +52,6 @@
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span><span class="cx"> 
</span><del>-SPECIALIZE_TYPE_TRAITS_CRYPTO_ALGORITHM_PARAMETERS(RsaOaepParams)
</del><ins>+SPECIALIZE_TYPE_TRAITS_CRYPTO_ALGORITHM_PARAMETERS_DEPRECATED(RsaOaepParams)
</ins><span class="cx"> 
</span><span class="cx"> #endif // ENABLE(SUBTLE_CRYPTO)
</span></span></pre></div>
<a id="trunkSourceWebCorecryptoparametersCryptoAlgorithmRsaSsaParamsDeprecatedh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/crypto/parameters/CryptoAlgorithmRsaSsaParamsDeprecated.h (207808 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/crypto/parameters/CryptoAlgorithmRsaSsaParamsDeprecated.h        2016-10-25 05:26:35 UTC (rev 207808)
+++ trunk/Source/WebCore/crypto/parameters/CryptoAlgorithmRsaSsaParamsDeprecated.h        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -42,6 +42,6 @@
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span><span class="cx"> 
</span><del>-SPECIALIZE_TYPE_TRAITS_CRYPTO_ALGORITHM_PARAMETERS(RsaSsaParams)
</del><ins>+SPECIALIZE_TYPE_TRAITS_CRYPTO_ALGORITHM_PARAMETERS_DEPRECATED(RsaSsaParams)
</ins><span class="cx"> 
</span><span class="cx"> #endif // ENABLE(SUBTLE_CRYPTO)
</span></span></pre></div>
<a id="trunkSourceWebCorecryptoparametersHmacKeyGenParamsidlfromrev207808trunkSourceWebCorecryptoCryptoKeyPairidl"></a>
<div class="copfile"><h4>Copied: trunk/Source/WebCore/crypto/parameters/HmacKeyGenParams.idl (from rev 207808, trunk/Source/WebCore/crypto/CryptoKeyPair.idl) (0 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/crypto/parameters/HmacKeyGenParams.idl                                (rev 0)
+++ trunk/Source/WebCore/crypto/parameters/HmacKeyGenParams.idl        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -0,0 +1,36 @@
</span><ins>+/*
+ * Copyright (C) 2016 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+[
+    Conditional=SUBTLE_CRYPTO,
+    ImplementedAs=CryptoAlgorithmHmacKeyGenParams
+] dictionary HmacKeyGenParams : CryptoAlgorithmParameters {
+    // The inner hash function to use.
+    required any hash;
+    // The length (in bits) of the key to generate. If unspecified, the
+    // recommended length will be used, which is the size of the associated hash function's block
+    // size.
+    [EnforceRange] unsigned long length;
+};
</ins></span></pre></div>
<a id="trunkSourceWebCorecryptoparametersRsaHashedKeyGenParamsidlfromrev207808trunkSourceWebCorecryptoCryptoKeyPairidl"></a>
<div class="copfile"><h4>Copied: trunk/Source/WebCore/crypto/parameters/RsaHashedKeyGenParams.idl (from rev 207808, trunk/Source/WebCore/crypto/CryptoKeyPair.idl) (0 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/crypto/parameters/RsaHashedKeyGenParams.idl                                (rev 0)
+++ trunk/Source/WebCore/crypto/parameters/RsaHashedKeyGenParams.idl        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -0,0 +1,32 @@
</span><ins>+/*
+ * Copyright (C) 2016 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *     notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+[
+    Conditional=SUBTLE_CRYPTO,
+    ImplementedAs=CryptoAlgorithmRsaHashedKeyGenParams
+] dictionary RsaHashedKeyGenParams : RsaKeyGenParams {
+    // The hash algorithm to use
+    required any hash;
+};
</ins></span></pre></div>
<a id="trunkSourceWebCorecryptoparametersRsaKeyGenParamsidlfromrev207808trunkSourceWebCorecryptoCryptoKeyPairidl"></a>
<div class="copfile"><h4>Copied: trunk/Source/WebCore/crypto/parameters/RsaKeyGenParams.idl (from rev 207808, trunk/Source/WebCore/crypto/CryptoKeyPair.idl) (0 => 207809)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/crypto/parameters/RsaKeyGenParams.idl                                (rev 0)
+++ trunk/Source/WebCore/crypto/parameters/RsaKeyGenParams.idl        2016-10-25 06:07:04 UTC (rev 207809)
</span><span class="lines">@@ -0,0 +1,34 @@
</span><ins>+/*
+ * Copyright (C) 2016 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+[
+    Conditional=SUBTLE_CRYPTO,
+    ImplementedAs=CryptoAlgorithmRsaKeyGenParams
+] dictionary RsaKeyGenParams : CryptoAlgorithmParameters {
+    // The length, in bits, of the RSA modulus
+    [EnforceRange] required unsigned long modulusLength;
+    // The RSA public exponent
+    required Uint8Array publicExponent;
+};
</ins></span></pre>
</div>
</div>

</body>
</html>